我有一个布局如下的页面:
<div class="cool nice">...</div> //1
<div class="cool nice">...</div> //2
<div class="cool nice">...</div> //3
<div class="cool nice">...</div> //4
<div class="separator element">...</div>
<div class="cool nice">...</div> //5
<div class="cool nice">...</div> //6
我可以用这样的class="cool nice"
获取所有元素:
List<WebElement> elements=driver.findElements(By.xpath("//*[@class='cool nice']"));
但是,我想排除元素后面带有class="separator element
的元素。最好的方法是什么?
在我看来,那里应该有一个没有:
//*[@class="cool nice" and not(./preceding::*[@class="separator element"])]
使用preceding-sibling
或preceding
//div[@class='separator element']/preceding::div[@class='cool nice']
或
//div[@class='separator element']/preceding-sibling::div[@class='cool nice']
立即试用
List<WebElement> elements=driver.findElements(By.xpath(" //div[@class='separator element']/preceding-sibling::div[@class='cool nice']"));