1、问题描述
页面中有多个下拉框,每个下拉框的值都是点击下拉框后,调取后台接口动态获取,所有元素的属性都相同,通过xpath获取的是@id+,该id每次加载时也是动态生成的,所以无法精准定位需要的下拉值。
2、解决办法文章来源:https://www.toymoban.com/news/detail-611242.html
通过分析,首先排除精确定位,可以先获取下拉框所有的值,通过for循环遍历,找到目标值后再click。方法很多,仅供参考。文章来源地址https://www.toymoban.com/news/detail-611242.html
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() # 点击该选项
到了这里,关于Python Selenium选择动态下拉框值,定位动态值的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!