首页 > 解决方案 > 使用 xpath 查找某些元素具有子元素但其他元素没有的项目

问题描述

晚上好。我在 Chrome 中有一个表,我正在尝试获取所有值。我正在使用 Java 和 Selenium。我将标题放入一个列表,然后细读行,获取每个单元格并获取其位置,然后获取标题并制作地图。希望这是有道理的。

我一次得到一行,然后做一个 row.findElements(By.xpath()))....

该表如下所示。我将使用 {tr}、{td} 等来代替 <>,因为输入 lt 和 gt 会很累。

 {tr}
   {td} 
     {input value='this is a cell value'} 
   {/td}
 {/tr}
 {tr}
   {td} 
     {span @class='MyClass'} This is a cell value {/span}
   {/td}
 {/tr}
 {tr}
    {td class='Want This One'} Want this value {/td}
 {/tr}

当没有 class='Want This One' 时,我可以做一个

 row.findElements(By.xpath("./td//*[1][self::input[@value or @title] or self::span[@class='MyClass']")

但这现在找不到 {td class='Want This One'}

如何将没有子元素的 td 添加到 findBy 中?请记住,它需要按特定顺序排列,以便与标题匹配。

标签: seleniumxpath

解决方案


尝试使用这个 xpath 表达式:

//tr/td[@class='Want This One']/text()

输出:

想要这个值


推荐阅读