我正在selenium 2中编写一个测试脚本,它会截取弹出窗口的截图。弹出窗口是pdf。
点击链接后,我正在使用代码
try {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
然而,截取屏幕截图只能拍摄主页而不是弹出窗口。有没有办法让selenium 2,将焦点更改为新的弹出窗口,截取屏幕截图,然后关闭弹出窗口并切换回主窗口?
答案 0 :(得分:0)
您必须使用以下内容切换驱动程序的焦点:
String mainWindow = driver.getWindowHandle();
for (String handle : driver.getWindowHandles()) {
if (!handle.equals(mainWindow)) {
driver.switchTo().window(handle)
//put your screenshot call here
driver.close();
driver.switchTo().window(mainWindow);
}
}
如果你有更多的窗口,这当然会截取所有其他窗口的截图。然后你需要知道确切的窗口句柄,然后切换到那个。