【发布时间】:2021-10-05 00:14:54
【问题描述】:
我正在制作一个删除网站部分的 chrome 扩展程序。为此,我需要找到一个包含一些文本的<span>,然后选择包含<div> 的标签。通常这个标签会在 DOM 中的 span 之上很多层,并且它没有一致的属性可供选择。
HTML
<body>
<div> <!-- I want to select this DIV -->
<div>
<div>
<div>
<span>some text</span>
</div>
</div>
</div>
</div>
</body>
我使用//span[text() = 'some text' 找到了正确的<span>,但现在我需要回到示例HTML 中的第一个<div>
试过//*[ancestor::span[text() = 'some text']] 和//span[ancestor::*[text() = 'some text']]。是的,这些只会上升到第一个父级,但这甚至对我不起作用,即使当我在 XPath Tester 上测试时它们作为有效的 XPath 表达式出现。
编写可以做到这一点的 XPath 表达式的最简单方法是什么?
【问题讨论】:
标签: html dom xpath google-chrome-extension