我试图在谷歌搜索页面上点击新闻链接的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')]
谢谢
2条答案
按热度按时间4jb9z9bj1#
你只需要
请注意
"News"
不属于span
,但是a
,所以您的第一个xpath不起作用vc6uscn92#
//a[contains(.,'News')]
可能会返回此链接,但可能会产生一个包含多个元素的列表,您需要处理这些元素并从中选择正确的元素。您可以使用selenium的searchcontext来指定容器元素,或者使用xpath一行代码来解决它,例如:
//div[@role='navigation']//a[contains(.,'News')]
(有效地搜索一个链接,该链接在它的html树的某处,在具有值为“navigation”的role属性的div中的某处包含“news”)。