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() # 点击该选项
本文转载自: https://blog.csdn.net/Buaixiao/article/details/124749414
版权归原作者 Buaixiao 所有, 如有侵权,请联系我们删除。
版权归原作者 Buaixiao 所有, 如有侵权,请联系我们删除。