python - Python 3 Selenium 从具有相同 ID 但不同值的下拉菜单中选择
问题描述
我正在使用 Firefox,并希望从下拉菜单中单击所选文本。于是我打开了optgroup,想选这个:
<option value="WSS" id="A5">[PREMIUM] WSS (wss://)</option>
有不同的值,只是具有另一个值,但 ID 相同。
我试过这个但没有成功:
select = Select(driver.find_element_by_id('A5'))
select.select_by_value("WSS")
select.select_by_visible_text("visible text/the shown text on the drop down menu")
select.select_by_value('WSS')
解决方案
您可以尝试获取在 HTML 代码中必须是“选择”的父对象(使用“./..”)并列出所有可能的选项。它避免了您的多个 id 的问题。
尝试这个:
yourValue = "WSS"
listOptions = driver.find_elements_by_xpath("//option[@id='A5']/./../option")
for option in listOptions:
if option.text == yourValue: # if wrong test "if option.get_attribute("innerText") == yourValue:"
indexed = listOptions.index(option)
break
Select(driver.find_elements_by_xpath("//option[@id='A5']/./..]")).select_by_index(indexed)
我直接在这里写的,它可能是错误的,不要犹豫,用更多的 HTML 代码给你的反馈,它会有所帮助;)
推荐阅读
- sql - MS Access - 更新单元格的值
- python - 如何从 django 中的数组中读取输入
- lambda - 使用 terraform 的自定义 API 网关授权器
- c++ - 如何使文本在饼图的每个切片中居中?
- javascript - selectize.js 在动态创建的选择元素上
- windows - 使用 pywin32 库中的 win32evtlog 写入 Windows 事件日志
- tfs-power-tools - TFPT 跨工作区取消搁置/迁移
- powershell - 将表对象导出到 CSV
- android - xml不能有多个根标签android
- ruby-on-rails - 根据属性值从Ruby中的数组中删除/删除对象