【问题标题】:Finding xpath of element查找元素的xpath
【发布时间】:2016-05-19 06:06:55
【问题描述】:

在下面的sn-p中

我想获取包含文本“这是我应该得到的”的元素的 xpath。我使用 xpath 表达式 html/body/div[5]/div[3]/div/div/div/div[2]/div/table/tbody/tr[2]/td/span,但我得到的元素带有文本“这就是我得到的”。请帮我修改元素定位器以获得所需的文本

【问题讨论】:

    标签: html xpath


    【解决方案1】:

    肯定有比那个冗长的 XPath 表达式更好的 XPath 表达式,但没有更多信息我只能基于现有的 XPath 提出建议。因此,可以将所需的文本节点标识为先前选择的 span 元素之后的文本节点:

    ..../table/tbody/tr[2]/td/span/following-sibling::text()[1]
    

    或作为来自父 td 元素的直接子文本节点:

    ..../table/tbody/tr[2]/td/text()[normalize-space()]
    

    【讨论】:

    • 当我使用上面的 xpath 来自动化使用 Selenium 和 Java 的一些测试场景时,我得到了异常 org.openqa.selenium.InvalidSelectorException。定位器是:[对象文本]。它应该是一个元素@vxsx
    • @curious 好吧,Selenium 中没有干净的 XPath 解决方案,因为它不支持返回元素节点以外的内容。您需要返回 <td> 元素,然后进行一些字符串操作:stackoverflow.com/questions/36018524/…
    【解决方案2】:

    如果要获取文本节点,xpath 将是:

    html/body/div[5]/div[3]/div/div/div/div[2]/div/table/tbody/tr[2]/td/text()[2]
    

    虽然 xPath 表达式可能不那么冗长。

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 2020-05-19
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多