我正在尝试点击网页上包含链接文字“查看此文本中的所有匹配”的所有链接。以下是网页上的一些html:
<a href="/searchCom.do?offset=24981670&entry=4&entries=112&area=Poetry&forward=textsCom&queryId=../session/1380145118_2069"><b>View all hits in this text</b>
<br>
</a>
[...]
<a href="/searchCom.do?offset=25280103&entry=5&entries=112&area=Poetry&forward=textsCom&queryId=../session/1380145118_2069"><b>View all hits in this text</b>
<br>
</a>
如果页面上只有一个这样的链接,我知道我可以使用以下内容点击它:
driver.find_element_by_link_text('View all hits in this text').click()
不幸的是,此方法只识别并点击网页上的第一个链接,其中包含链接文本“查看此文本中的所有匹配”。因此,我想问:是否有一种方法可以用来点击第二个(或第n个)链接,链接文本“查看此文本中的所有匹配”?我有一种感觉,我可能需要使用xpath,但我还没有弄清楚我应该如何在我的脚本中实现xpath。对于其他人可以借出的任何建议,我将不胜感激。
答案 0 :(得分:3)
有find_elements_by_link_text()
(docs):
links = driver.find_elements_by_link_text('View all hits in this text')
for link in links:
link.click()
此外,您可以使用xpath获取具有指定文本的所有链接:
links = driver.find_elements_by_xpath("//a[text() = 'View all hits in this text']")
for link in links:
link.click()
希望有所帮助。
答案 1 :(得分:1)
请尝试以下代码:
driver.find_elements_by_link_text('linktext')[1].click()