gpt4 book ai didi

selenium - Selenium和xPath-通过包含文本来定位链接

转载 作者:行者123 更新时间:2023-12-03 12:24:30 26 4
gpt4 key购买 nike

我正在尝试使用xPath查找包含一段文本的元素,但是我无法使其正常工作...。

WebElement searchItemByText = driver.findElement(By.xpath("//*[@id='popover-search']/div/div/ul/li[1]/a/span[contains(text()='Some text')]"));

如果删除带有“contains”内容的最后一位,它将找到我的span元素,但是我需要根据文本内容进行选择。它也不是“某些文本”的完美匹配,因为它也可能包含截断的字符串。

有人看到这个问题吗?

最佳答案

我认为问题出在这里:

[contains(text()='Some text')]

为了解决这个问题,
  • []是一个条件,可在
    该节点集-您的情况下的每个span节点。它匹配是否运行任何单个节点
    符合括号内的条件。
  • text()是一个选择器
    与作为上下文子级的所有文本节点匹配
    node-返回一个节点集。
  • contains是一个可运行的函数
    在一个字符串上。如果传递了节点集,则该节点集为convertedinto a string by returning the string-value of the node in thenode-set that is first in document order

  • 您应该尝试将其更改为
    [text()[contains(.,'Some text')]]
  • 外部[]是在每个单独节点上运行的条件
    在该节点集text()是一个匹配所有文本的选择器
    上下文节点的子节点-返回一个节点
    组。
  • 内部[]是一个条件,可在该条件下对每个节点进行操作
    节点集。
  • contains是对字符串进行操作的函数。在这里通过
    单个文本节点(.)。
  • 关于selenium - Selenium和xPath-通过包含文本来定位链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23078308/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com