testing - 将焦点切换到弹出窗口并截取屏幕截图

标签 testing popup selenium-webdriver screenshot

我正在用 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、将焦点切换到新的弹出窗口、截取屏幕截图,然后关闭弹出窗口并切换回主窗口?

最佳答案

你必须用这样的东西来切换驱动程序的焦点:

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);
    }
}

如果您有更多窗口,这当然会截取所有其他窗口。然后你需要知道确切的窗口句柄并切换到那个。

关于testing - 将焦点切换到弹出窗口并截取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6631005/

相关文章:

ruby-on-rails - rails 4 : Why do fixtures make this test fail?

java - 我如何使用@WebMvcTest 并添加我自己的自定义过滤器?

wpf - 如何正确地在我的 DataGridTemplateColumn.CellEditingTemplate 中放置一个弹出窗口?

c# - Selenium RemoteWebDriver 中的 NTLM 身份验证

testing - Google firebase 测试实验室,兼容性测试

testing - 使用 babel 转译 javascript 代码的问题

javascript - 如何在jquery中只执行一次action?

javascript - 点击广告弹出延迟

python Selenium : How to check whether the WebDriver did quit()?

python - 如何让我的 python webdriver 刷新页面,直到出现下拉菜单并包含我需要选择的选项?