使用Selenium和python在DOM中查找第二个元素

时间:2018-10-19 14:41:59

标签: python selenium selenium-webdriver xpath css-selectors

我的网页上有两个具有相同类名的元素,并且我试图访问第二个元素,但我无法做到这一点。

跨度看起来像这样:

<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission
    android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission
    android:name="android.permission.READ_INTERNAL_STORAGE"/>

这部分的代码如下:

<span class="REPORTING_DASHBOARDS__link navMenuLabel ">

Dashboards

</span>

1 个答案:

答案 0 :(得分:6)

您必须使用find_elements_而不是find_element_来获取所有元素。 find_element仅返回第一个可能的元素。

dashboards_button = driver.find_elements_by_css_selector(".REPORTING_DASHBOARDS__link.navMenuLabel")[1] 

或者如果nth-child与find_element在同一父项下,则使用

dashboards_button = driver.find_element_by_css_selector(".REPORTING_DASHBOARDS__link.navMenuLabel:nth-child(1)")   

如果它不在同一父目录下,请将其更改为xpath,

dashboards_button = driver.find_element_by_xpath("//[contains(@class,'REPORTING_DASHBOARDS__link navMenuLabel')][1]")