<ul id='pairSublinksLevel1' class='arial_14 bold newBigTabs'>...<ul>
<ul id='pairSublinksLevel2' class='arial_12 newBigTabs'>
<li>...</li>
<li>...</li>
<li>
<a href='/equities/...'> last data </a> #<-- HERE
</li>
<li>...</li>
问题是我如何获得第三个li标签?
在我的代码中
xpath = "//ul[@id='pairSublinksLevel2']"
element = driver.find_element_by_xpath(xpath)
actions = element.find_element_by_css_selector('a').click()
代码部分起作用。但我想点击第三个li标签。 该代码不断单击第二个标签。
答案 0 :(得分:1)
尝试
driver.find_element_by_xpath("//ul[@id='pairSublinksLevel2']/li[3]/a").click()
编辑: 感谢@DebanjanB的建议:
当您获得带有xpath //ul[@id='pairSublinksLevel2']
的元素并在其子元素中搜索a
标记时,它将返回第一个匹配项(在您的情况下,它可能位于第二个{{1}之内} 标签)。因此,您可以使用上面给出的索引来获取特定的编号匹配项。请注意,这种索引从1而不是0开始。
答案 1 :(得分:0)
根据您共享的 HTML ,您可以使用以下任一解决方案:
使用link_text
:
driver.find_element_by_link_text("last data").click()
使用partial_link_text
:
driver.find_element_by_partial_link_text("last data").click()
使用css_selector
:
driver.find_element_by_css_selector("ul.newBigTabs#pairSublinksLevel2 a[href*='equities']").click()
使用xpath
:
driver.find_element_by_xpath("//ul[@class='arial_12 newBigTabs' and @id='pairSublinksLevel2']//a[contains(@href,'equities') and contains(.,'last data')]").click()