python - 在下拉菜单中迭代
问题描述
我在尝试在 python 中获取列表时遇到了一些麻烦。
我正在使用 Selenium Web 驱动程序,特别是 Chrome,并且我有下一个“按钮”:
<button id="btn" class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">Nope</button>
<ul id="ulDropdownNivel2" class="dropdown-menu">
<li>
<a href="#">text1</a>
</li>
<li>
<a href="#">text2</a>
</li>
<li>
<a href="#">text3</a>
</li>
</ul>
所以..我尝试使用Selenium Wd的Select.class,但是,它是一个按钮,并且不能在那里使用该类...尝试在上面使用它,<ul>
但它也不能使用Select...
不能像这样使用 smh:
dropdoun = Select(driver.find_element_by_id('ID'))
for elm in dropdoun{ print(elm.text())}
试图想出一种方法来遍历项目......但我没有得到任何东西
我想出了一种通过 xPath 进行单击的方法,但是它对我不起作用,导致 text1、text2、text3 等每次打开网络时都会更改顺序
任何想法?
编辑:
我在这里需要的是遍历每个项目,并选择与“text1”、“text2”或“text3 ...
解决方案
我认为您应该单击按钮以打开下拉菜单:
opendropdownButton = driver.find_element_by_id("btn").click()
//here should be wait if now works
dropdownElements = driver.find_elements_by_xpath("//ul [@id="ulDropdownNivel2"]//a")
for elm in dropdownElements{ print(elm.text())}
推荐阅读
- css - 有没有办法固定 html 中所有屏幕尺寸和分辨率的环内径尺寸
- rest - REST 文件下载需要 5 分钟才能完成
- c# - 为 Xamarin.Forms 中的按钮选择处理程序或命令的最佳实践
- stored-procedures - 我可以在 Redshift 上的存储过程中将两个查询连接在一起吗?
- swift - 如何在 iOS 9.3 的 Xcode 10.2.1 中存储颜色标签
- git - 无法将新更改从本地 repo 推送到远程 github
- ssl - 使用 WebSockets 固定证书
- java - 无法连接到 gmail 商店 javax 邮件 api
- android - 如何在 Android 应用程序中将应用程序置于前台?
- dialogflow-es - 可以给基于 DialogFlow 的聊天机器人起一个名字