使用selenium webdriver跳过一个div后继续计算DIVS

时间:2016-09-28 00:05:07

标签: selenium

我想跳过GoTop类div并继续计算父类中div的数量。

<div class="parent">
      <div>
      <div>
      <div>
      <div>
      <div>
      <div class="GoTop">
      <div>
      some more div's ......
    </div>

我已经尝试了以下但我得到的是尺寸为5,请帮助

size = driver.findElements(By.xpath("//div[@class='parent']/div [not(contains(@class,'GoTop'))]")).size();

1 个答案:

答案 0 :(得分:0)

您尝试过的代码看起来是正确的,我认为您应该尝试使用WebDriverWait等待divs元素与尝试的定位器一起出现。

我建议您尝试使用By.cssSelector()来实现与以下相同: -

WebDriverWait wait = WebDriverWait(driver, 10);
int size = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("div.parent > div:not(.GoTop)"))).size();

已修改: - 如果您仍然获得的元素少于总数,则可以尝试使用ExpectedCinditions.numberOfElementsToBeMoreThan,这将等到找到的元素总数等于或大于给定的数字如下: -

WebDriverWait wait = WebDriverWait(driver, 10);
int size = wait.until(ExpectedConditions.numberOfElementsToBeMoreThan(By.cssSelector("div.parent > div:not(.GoTop)"), 6)).size();