Selenium TakesScreenshot捕获“请稍候......”消息

时间:2013-08-08 14:00:48

标签: java selenium

我正在使用下面的代码来捕获网站每个页面的屏幕截图。它工作但有时某些页面加载1到2秒/秒,我被一个带有“请等待......”消息的旋转gif圈进行了光照。

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));

使用Firebug,看起来这可能是罪魁祸首:

<div class="blockUI blockMsg blockPage" style="z-index: 1011; position: fixed;
padding: 15px; margin: 0px; width: 20%; top: 40%; left: 40%; text-align: center; 
color: rgb(255, 255, 255); border: medium none; background-color: rgb(0, 0, 0); 
cursor: wait; opacity: 0;">
<img src="/images/front/loading.gif"/>
<br/>
<strong>Please wait...</strong>
</div>`

我的问题是:我如何计算屏幕截图以避免这种情况? Thread.sleep(2000)有效,但我宁愿远离那个。我还检查了页面上是否存在元素,它们就在那里,但是这条消息阻碍了它。

欣赏任何建议。感谢。

** 编辑添加一些截止的代码(来自Firebug)。

2 个答案:

答案 0 :(得分:2)

您是否尝试等待'Please wait ...'元素不可见?

wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//strong[text()='Please wait...']"));

答案 1 :(得分:0)

我们可以将其用于最新版本的Internet Explorer 10 +:

wait.until(ExpectedConditions.invisibilityOfElementWithText(
      By.xpath("//div[2]/div[contains(text(),'Please Wait....')]"),"Please Wait...."));