Python中的Selenium:选择具有给定链接tex的第二个元素

2024-10-01 09:35:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试单击包含链接文本“查看此文本中的所有点击”的网页上的所有链接。网页上的某些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>

如果页面上只有一个这样的链接,我知道我可以用类似的方法单击它:

^{pr2}$

不幸的是,这个方法只识别并点击网页上的第一个链接,链接文本为“查看此文本中的所有点击”。因此,我想问:有没有方法可以用来单击第二个(或第n个)链接,链接文本为“查看此文本中的所有点击数”?我觉得我可能需要使用xpath,但我还没有完全弄清楚应该如何在脚本中实现xpath。如果别人能给我一些建议,我将不胜感激。在


Tags: 方法文本网页poetry链接areadooffset
2条回答

请尝试以下代码:

driver.find_elements_by_link_text('linktext')[1].click()

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获取具有指定文本的所有链接:

^{pr2}$

希望有帮助。在

相关问题 更多 >