Selenium等元素出现并消失

时间:2016-01-20 02:15:32

标签: selenium wait

我有以下元素:

<div class="ui-helper-hidden" id="shell.indicator.busy">
  <label>Processing...</label>
  <br />
  <img src="/RightCrowd/Images/loading.gif" alt="" />
</div>

它看起来像这样:

Processing

我想等待它出现然后消失并继续访问元素。这出现在Web应用程序的大多数页面上。我们已经尝试过一些东西,但有时候Selenium可以看到它,有时却看不到,虽然我可以用眼睛看到它。

我相信此处理图像显示在当前页面的顶部,并且使用当前处理程序可能没用。不确定。

我们尝试过这样的事情:

        WebElement element = (new WebDriverWait(webDriver, 10))
                   .until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//img[contains(@src,'/Images/loading.gif')]")));

        boolean processingEnd = (new WebDriverWait(webDriver, timeoutWaitForProgressbar))
                   .until(ExpectedConditions.invisibilityOfElementLocated(By.id("shell.indicator.busy")));

所以我们尝试了xpath和id ...请让我知道处理这种情况的最佳方法是什么。

1 个答案:

答案 0 :(得分:4)

默认情况下,WebDriverWait会每隔半秒检查一次预期状态。我会尝试使用FluentWait类更频繁地发出预期的条件检查请求:

Wait wait = new FluentWait(driver)
   .withTimeout(timeoutWaitForProgressbar, SECONDS)
   .pollingEvery(100, MILLISECONDS);

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("shell.indicator.busy")));