【问题标题】:Unable to click on a "text" link in google search page无法点击谷歌搜索页面中的“文本”链接
【发布时间】:2020-09-04 13:51:51
【问题描述】:

我正在尝试点击谷歌搜索页面上的新闻链接,HTML 结构如下所示

我尝试过使用 xpath,但没有成功

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

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

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

谢谢

【问题讨论】:

    标签: java selenium-webdriver xpath


    【解决方案1】:

    //a[contains(.,'News')] 可能会返回此链接,但可能会生成一个包含多个元素的列表,您需要处理并从中选择正确的元素。

    您可以使用 Selenium 的 SearchContext 来指定一个容器元素,或者使用 xpath 单线解决它,例如://div[@role='navigation']//a[contains(.,'News')](有效地搜索在它的 html-tree 中某处包含 'News' 的链接,在 div 中的某处具有值为“导航”的角色属性)。

    【讨论】:

      【解决方案2】:

      你只需要

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

      请注意,"News" 不是span 的一部分,而是a,因此您的第一个 XPath 将不起作用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        • 2018-04-18
        • 2023-04-06
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        相关资源
        最近更新 更多