Selenium:按类 xpath 查找元素,在特定元素之前



我有一个布局如下的页面:

<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-siblingpreceding

//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']"));

相关内容

  • 没有找到相关文章

最新更新