Selenium获取div实现下拉框所有可用选项报错排查
Selenium操作非原生div下拉框获取选项报错问题
问题背景
- 测试需求:使用Selenium编写网站自动化测试用例,需要获取页面中某一下拉框的全部可用选项,与预期选项列表做比对校验
- 现存阻碍:
- 网站DOM存在大量嵌套div,元素审查时目标下拉框会同时高亮多个div节点,无法准确定位下拉框对应的DOM元素
- 目标下拉框由div元素实现,并非原生
select标签,无法直接使用Selenium内置的Select类操作
报错复现
使用找到的替代方案编写代码后,执行click操作始终返回None类型,触发报错,对应代码如下:
listWE = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="FXOptions"]/div[2]/div[1]/div[1]/div/div[2]/div[2]/div/div/div/div/div/div'))).click() print(listWE) ab = Select(listWE)
运行输出及报错信息:
None Traceback (most recent call last): File "/Users/18356995/Documents/WebUI/selenium/main.py", line 28, in <module> ab = Select(listWE) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/support/select.py", line 36, in __init__ if webelement.tag_name.lower() != "select": AttributeError: 'NoneType' object has no attribute 'tag_name'
已尝试操作:审查目标元素后复制其XPath路径、复制所有与下拉框关联的div节点的XPath路径,运行结果完全一致。
对应页面DOM结构截图:
内容的提问来源于stack exchange,提问作者Sereas
相关产品推荐
相关产品推荐

