selenium - 使用 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 中?请记住,它需要按特定顺序排列,以便与标题匹配。
解决方案
尝试使用这个 xpath 表达式:
//tr/td[@class='Want This One']/text()
输出:
想要这个值
推荐阅读
- ruby-on-rails - 无法理解使用带有 graphql-ruby gem 的 ActionCable 的 GraphQL 订阅
- c# - Visual Basic 语法错误。在页面指令中
- html - Bootstrap 4 - 我怎样才能适应列的内容大小?
- tensorflow - 如何使用 Tensorflow 的 Dataset API 在 Keras 中进行预测
- google-search - 当我按关键字搜索时,Rich Snippet 未显示在 Google 搜索结果页面中
- excel - 如果条件不满足,请勿保存工作表
- mysql - 如何删除数据集中所有行的第一部分
- python-3.x - 在 Firebase-admin Python SDK 中检索 idToken 和 refreshToken
- meteor - 为什么 Meteor 每次执行某个 Meteor.call 时都会重新启动?
- python-3.x - 如何将已声明的字符串作为变量访问