我有不同div的内部跨度的HTML:
<div class="test1">
<div class="test2">
<span title="Time">Today 11:12am</span>
</div>
<div class="test3">
<span class="test4">Windows 7 64 bit</span>
<span class="test5">Something</span>
</div>
</div>
<div class="test6">
<div class="test2">
<span title="Time">Today 11:15am</span>
</div>
<div class="test3">
<span class="test4">Windows 8 64 bit</span>
<span class="test5">Something</span>
</div>
</div>
我想通过选择不同范围内的特定文本来查找使用XPATH的元素。例如,我需要找到一个真实的元素:“今天”文本和“Windows 7”文本。
所以,我试过这句话:
//div[@class="test1"]/div[contains(span,'Today') and contains(span,'Windows')]
但这不起作用。我试过在里面使用OR,它只适用于一个真实的声明。
还有其他选择吗?
答案 0 :(得分:1)
//div[.//span[contains(text(), 'Today')] and .//span[contains(text(), 'Windows 7')]]
会工作吗?您指定的[expression]
字面上可以是任何内容,因此您可以在其中填充另一个元素搜索。 .
字符也是关键,确保搜索范围限定为当前父级(即div
而不是整个文档)。
答案 1 :(得分:0)
我想我找到了解决方案。它可以是:
//div[@class="test1"]/div[contains(span,'Today')]/following::div(span,'Windows')]