html - 在 XPATH 中搜索时如何忽略兄弟元素?
问题描述
以下 DIV 在页面上,我想通过 C1102W 查找元素:
<div class="product-sku hidden-xs">
<span>Item #: </span>
C1102W </div>
我试过查询:
$x("//*[normalize-space()='C1102W']")
但是,由于跨度,它不会返回正确的元素,因为它正在寻找类似“Item #: C1102W”的东西。以下查询返回太多结果:
$x("//*[contains(., 'C1102W')]")
无论如何要查询“给我只包含 C1102W 的元素,忽略跨度或任何其他兄弟姐妹”?
编辑:对我有用的解决方案。
//text()[normalize-space() = 'C1102W']/..
解决方案
这个 XPath,
//div[ends-with(normalize-space(), 'C1102W')]
将只返回那些div
空间标准化字符串值以 . 结尾的元素'C1102W'
。
推荐阅读
- aws-cli - 从异步调用访问 Lambda 日志?
- karate - 如果数据元素的顺序不同,则空手道匹配失败
- java - 由于 Tycho 的“重新打包”,共享的 Maven 插件依赖的解析方式不同,导致 SecurityException
- java - 使用 SingleSignOutFilter 时 SingleSignOutHttpSessionListener 的实用程序
- c# - 列出我猜到的所有数字
- php - WordPress 已经存在 wp-config.php(Docker、ECS)
- scala - 如何使用大小写和匹配来定义 DataFrame?
- jquery - 如何在脚本之后运行事件?
- html - 我们如何在表单 post 中传递 http 请求正文中的 JSON 数据
- arrays - 使用多个线程搜索数组,同时不做任何不必要的额外工作