我的网页看起来像这样:
<div>
<div>
<div>
<span class="span class one">
some text
</span>
</div>
</div>
<div>
<div>
<span class="span class two">
span i want to pick
</span>
</div>
</div>
</div>
我想通过<span class="span class two">
中的文字选择<span class="span class one">
。我不确定它是否可能。每个树部件中的元素数量不相同。
答案 0 :(得分:1)
以下可能是替代答案 -
//span[normalize-space(text())='some text']/../../following-sibling::div//span
说明: -
//span[normalize-space(text())='some text']
用于查找包含所需详细信息的span标记
/../..
将移至上下文节点的父元素
/following-sibling::div//span
会找到父span
的兄弟元素中的div
标记
答案 1 :(得分:0)
您可以使用class属性的值选择元素:
//span[@class='span class two']
答案 2 :(得分:0)
//span[contains(., "some text")]/following::span
出:
Element='<span class="span class two">
span i want to pick
</span>'
答案 3 :(得分:0)
尝试这种方式,正如您提到的那样,您想要创建//span[text()= 'some text']/following::span[@class='span class two']
以及text
<span>
xpath的说明:使用<span>
方法和following keyword
代码,并使用public class Example {
void foo() {
void bar() { }
}
继续使用其他public class Example {
void foo() {
}
void bar() { }
代码。
答案 4 :(得分:0)
我可能会以不同的方式理解它,但我会尝试给出不同的答案:
//span[contains(text(),(//span[@class='span class one']/text())) and not(@class='span class one')]
表示:
//span[contains(text(),
- 您正在寻找包含特定文字的span元素
(//span[@class='span class one']/text()))
- 该文本是span class one中的文本
and not(@class='span class one')]
- 但是span元素不应该是第一类
当然,您可以将text()
替换为不同的属性,例如类或名称等等......例如//span[contains(@class,(//span[@class='span class one']/text()))]