Pra*_*abu 1 java selenium selenium-webdriver
操作:如果我单击任何链接,则一旦完全加载页面就会显示进度条,然后隐藏该进度条
怀疑:我们希望自动执行上述操作,如何检查进度操作是否完成
下面是html代码
一旦我点击链接html看起来像这样
<div id ="divProgress" class="progresswindow" style="display: block;"></div>
Run Code Online (Sandbox Code Playgroud)
然后页面加载完成的html看起来像这样
<div id ="divProgress" class="progresswindow" style="display: none;"></div>
Run Code Online (Sandbox Code Playgroud)
那我怎么能检查这个进度条是否已经完成,目前我正在使用Thread.sleep(),但有时候web驱动程序会引发异常
Other element would receive the click: <div id="divProgress" class="progresswindow" style="display: block;">...</div>
Run Code Online (Sandbox Code Playgroud)
请提供一个建议如何处理显式等待
Thread.sleep()
您应该使用WebDriverWait和ExpectedConditions类,而不是等待任何条件.
在您的情况下,您应该等到带有进度条的div变为不可见:
long timeoutInSeconds = 30;
new WebDriverWait(driver, timeoutInSeconds)
.until(ExpectedConditions.invisibilityOfElementLocated(By.id("divProgress")));
Run Code Online (Sandbox Code Playgroud)
正如您所发现的那样,Thread.sleep()
太脆弱而无法在测试代码中安全使用 - 您应该始终等待可以检查的内容.作为奖励,您的测试可能会执行得更快!
归档时间: |
|
查看次数: |
6785 次 |
最近记录: |