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

PyR*_*Rar 1 python selenium xpath css-selectors selenium-webdriver

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

跨度看起来像这样:

<span class="REPORTING_DASHBOARDS__link navMenuLabel ">

Dashboards

</span>
Run Code Online (Sandbox Code Playgroud)

我这部分的代码如下所示:

dashboards_button = driver.find_element_by_css_selector(".REPORTING_DASHBOARDS__link.navMenuLabel")[1]                                                          
dashboards_button.click()
Run Code Online (Sandbox Code Playgroud)

Nav*_*asu 6

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

dashboards_button = driver.find_elements_by_css_selector(".REPORTING_DASHBOARDS__link.navMenuLabel")[1] 
Run Code Online (Sandbox Code Playgroud)

或使用nth-child(如果它与find_element在同一父项下)

dashboards_button = driver.find_element_by_css_selector(".REPORTING_DASHBOARDS__link.navMenuLabel:nth-child(1)")   
Run Code Online (Sandbox Code Playgroud)

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

dashboards_button = driver.find_element_by_xpath("//[contains(@class,'REPORTING_DASHBOARDS__link navMenuLabel')][1]")   
Run Code Online (Sandbox Code Playgroud)