添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1、问题描述

页面中有多个下拉框,每个下拉框的值都是点击下拉框后,调取后台接口动态获取,所有元素的属性都相同,通过xpath获取的是@id+,该id每次加载时也是动态生成的,所以无法精准定位需要的下拉值。

2、解决办法

通过分析,首先排除精确定位,可以先获取下拉框所有的值,通过for循环遍历,找到目标值后再click。方法很多,仅供参考。

from selenium import webdriver
from selenium.webdriver.common.by import By
# 操作Chrome浏览器,开始执行
browser = webdriver.Chrome()
browser.implicitly_wait(5)
browser.maximize_window()
browser.get('url')
#   点击下拉框,使页面加载动态下拉框值
browser.find_element(By.XPATH, '//*[@id="root"]/div/div/div/section/mai/div/div[2]/div/div[1]').click()
#   通过CSS_SELECTOR,根据下拉框值的共同class属性获取所有值,find_elements返回的是列表[]
elements = browser.find_elements(By.CSS_SELECTOR, 'li.ant-select-dropdown-menu-item')
#   遍历列表,element.text获取列表值并与实际需要选择的值比对,比对成功后点击该选项值
for element in elements:
    print(element.text)
    if element.text == '业务领域aa000001':    #    可以是==变量
        element.click()    #    点击该选项
selenium .common.exceptions.NoSuchElementException: Message: nosuch element: Unable to locate element:{“method”:“xpath”,“selector”:"/html/body/div[16]/div/div[2]/div/for 这里可以使用XPAN 定位 到下 框,使用driver.find_element(By.XPATH,“路径”).click()进行点击 2、 定位 到下 框里的筛选项元素,每次滚动都会变化 这里的内容要用XPAN 定位 到//div[@class=“rc-virtual-list-holder-inner”] 然后使用 鼠标滚动的方式,去获取所有的元素名称 def mouse_move(self,loc,page_nam 在进行网络数据采集和数据分析时,处理 动态 生成的下 菜单是一个常见的挑战。 Selenium 是一个强大的 Python 库,可以让你自动化浏览器操作,比如从 动态 生成的下 菜单中 选择 选项。这是一个常见的网页爬虫和数据收集者面临的挑战,但是 Selenium 让它变得简单。这段代码的目的是打开一个网页并 选择 指定的下 菜单选项,然后等待一段时间。具体网页和下 菜单的功能和目的需要根据实际情况来确定。 总结一下 python + selenium select下 选择 定位 处理的两种方式,以备后续使用时查询; 二、直接 定位 (XPath) 使用Firebug找到需要 定位 到的元素,直接右键复制XPath,使用find_element_by_xpath 定位 ; driver = webdriver.Firefox() driver.get(https://www.baidu.com/) driver.find_element_by_xpath().click() 三、间接 定位 (Select模块) 页面HTML源码如下所示: <select id=nr name=NR> 使用 python 爬虫的 selenium 操作网页的下 框。 以该网站为例:https://www.17sucai.com/pins/demo-show?id=5926 该网页下存在多个可供测试的下 框。 基本脚手架代码: from selenium .webdriver.support.ui import Select from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www selenium 的下 选择 框。我们通常会遇到两种下 框,一种使用的是html的标签select,另一种是使用input标签做的假下 框。 后者我们通常的处理方式与其他的元素类似,点击或使用JS等。而对于前者, selenium 给了有力的支持,就是Select类。 进行测试的网站:http://sahitest.com/demo/selectTest.htm 网页及对应源码: 二、关于导入方式 两种导入方式: from selenium .webdriver.support.ui imp select_by_index(index) 通过索引 定位 select_by_value(value) 通过value 定位 select_by_visible_text(text) 通过文本内容 定位 2.html 代码如下,大家可以复制一下内容然后保存为select.html格式