![](/img/trans.png)
[英]How to get object of Pop-up screen that blocks the main screen using firepath in selenium webdriver?
[英]How to capture screen of pop up window using Selenium WebDriver?
我正在尝试捕获弹出窗口的屏幕但没有成功。
我将此代码用于“常规”捕获屏幕:
File scrFile = ((TakesScreenshot)alertDialog).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
当弹出窗口出现时,我想捕获弹出屏幕,我该怎么做?
public void checkPopup() throws IOException
{
Alert alertDialog = driver.switchTo().alert();
File scrFile = ((TakesScreenshot)alertDialog).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
String alertText = alertDialog.getText();
}
目前是不可能的。 Webdriver 的截图例程仅适用于 DOM; 但是alert存在于DOM之外,它是一个单独的窗口,截图例程没有办法包含它。
在 Selenium 的问题跟踪器中,该问题已被报告并标记为按预期工作: https : //code.google.com/p/selenium/issues/detail? id =4412
使用 selenium 无法使用警报框截取屏幕截图。 您需要接受或拒绝警报框。 如果不这样做,就无法捕获屏幕截图。 当您不处理警报框时,会抛出UnexpectedAlertPresentException
。 在我的场景中,我接受警告框并截取 URL 的屏幕截图。
以下是代码片段。
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
System.out.println("ERROR: (ALERT BOX DETECTED) - ALERT MSG : " + alertText);
alert.accept();
File outputFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
String imageDetails = "C:\\Images";
File screenShot = new File(imageDetails).getAbsoluteFile();
FileUtils.copyFile(outputFile, screenShot);
System.out.println("Screenshot saved: {}" + imageDetails);
driver.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.