我的页面布局如下:
<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
开头的元素。最好的方法是什么?
答案 0 :(得分:1)
使用preceding-sibling
或preceding
//div[@class='separator element']/preceding::div[@class='cool nice']
OR
//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']"));
答案 1 :(得分:1)
在我看来应该没有一个地方:
//*[@class="cool nice" and not(./preceding::*[@class="separator element"])]