1

我有一堂课:

<div class = "abc def">
    <i style="...."></i>
    some text 2
</div>

<div class = "abc def">
    <i></i>
    some text
</div>

<div class = "abc def">
    1 some text
</div>

如何检查是否有一个 div 有单词some text并且i这个 div 中有标签?

对于这个例子,我必须得到第一个和第二个 div。第三个 div 没有i标签,所以我不会得到他。

我认为应该是:

elements = driver.findElement(By.xpath(//div[contains(text(), 'some text')]));
if (elements.length > 0) {
    for(var i = 0; i < elements.length; i++) {
       if (elements[i].find('<i') != null) {
             alert('the item: ' + i + 'is found');
       }
    }
}
4

1 回答 1

2

XPath 表达式或多或少等于自然语言版本:

//div[contains(., 'some text') and i]

如果<i/>标签可能包含在其他元素中,请.//i改用。在大多数情况下,您想使用.而不是text(),这会连接所有文本节点并扫描组合结果,因此<em>some</em> text也会匹配。

于 2013-07-30T22:33:18.293 回答