在下拉菜单中迭代

时间:2018-07-03 17:13:44

标签: python selenium

我在尝试获取python列表时遇到了一些麻烦。

我正在使用Selenium Web Driver,特别是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>上使用它,但不能使用既不选择...

不能像这样使用smh:

dropdoun = Select(driver.find_element_by_id('ID'))
for elm in dropdoun{ print(elm.text())}

试图找到一种遍历项目的方法...但是我什么也没得到

我想出了一种通过xPath单击的方法,但它对我不起作用,导致text1,text2,text3等,因此每次您打开网络时都会更改顺序

有什么主意吗?

编辑:

我在这里需要的是遍历每一项,然后选择与“ text1”,“ text2”或“ text3 ...”匹配的项。

1 个答案:

答案 0 :(得分:0)

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

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