无法在google搜索页面中单击“文本”链接

56lgkhnf  于 2021-07-05  发布在  Java
关注(0)|答案(2)|浏览(261)

我试图在谷歌搜索页面上点击新闻链接的html结构看起来像这样

我试着跟随XPath,但都没用

//a/child::span[1][contains(.,'News')]

以下xpath导致无效的选择器:xpath表达式“//a/child::span/following sibling::text()[包含(,'news')]”的结果是:[object text]。它应该是一个元素。

//a/child::span/following-sibling::text()[contains(.,'News')]

谢谢

4jb9z9bj

4jb9z9bj1#

你只需要

//a[contains(., "News")]

请注意 "News" 不属于 span ,但是 a ,所以您的第一个xpath不起作用

vc6uscn9

vc6uscn92#

//a[contains(.,'News')] 可能会返回此链接,但可能会产生一个包含多个元素的列表,您需要处理这些元素并从中选择正确的元素。
您可以使用selenium的searchcontext来指定容器元素,或者使用xpath一行代码来解决它,例如: //div[@role='navigation']//a[contains(.,'News')] (有效地搜索一个链接,该链接在它的html树的某处,在具有值为“navigation”的role属性的div中的某处包含“news”)。

相关问题