首页 > 解决方案 > 在下拉菜单中迭代

问题描述

我在尝试在 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 ...

标签: pythonselenium

解决方案


我认为您应该单击按钮以打开下拉菜单:

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())}

推荐阅读