我有以下元素:
<div class="ui-helper-hidden" id="shell.indicator.busy">
<label>Processing...</label>
<br />
<img src="/RightCrowd/Images/loading.gif" alt="" />
</div>
它看起来像这样:
我想等待它出现然后消失并继续访问元素。这出现在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 ...请让我知道处理这种情况的最佳方法是什么。
答案 0 :(得分:4)
默认情况下,WebDriverWait
会每隔半秒检查一次预期状态。我会尝试使用FluentWait
类更频繁地发出预期的条件检查请求:
Wait wait = new FluentWait(driver)
.withTimeout(timeoutWaitForProgressbar, SECONDS)
.pollingEvery(100, MILLISECONDS);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("shell.indicator.busy")));