切换到包含窗口的PDF - 硒



我正在尝试验证在单击"生成PDF"超链接时是否打开了新窗口。我不需要验证PDF内容,只是想确保在单击测试链接时打开一个新窗口。

我已经尝试过下面的窗口句柄代码,但它不起作用!!

String strCurrWind = driver.getWindowHandle();
        for(String strTempWind:driver.getWindowHandles()) {
            driver.switchTo().window(strTempWind);
        }
        String strPDFUrl = driver.getCurrentUrl();
        driver.close();
        driver.switchTo().window(strCurrWind);

请帮我一些建议....谢谢!

因此,如果您只需要检查新窗口是否已打开:

int oldWindowCount = driver.getWindowHandles().size();
driver.findElement(<By locator for hyperlink here>).click();
int newWindowCount = driver.getWindowHandles().size();
Assert.assertEquals(1, newWindowCount - oldWindowCount);

假设您打开的窗口不超过两个,如果要在当前窗口和新窗口之间切换:

String oldWindow = driver.getWindowHandle();
driver.findElement(<By locator for hyperlink here>).click();
for (String handle : driver.getWindowHandles()) {
    if (!handle.equals(oldWindow)) {
        driver.switchTo().window(handle);
    }
}

当您单击"生成 PDF 链接"时,有两种方式可以发生,

  1. 打开新的浏览器窗口
  2. 将打开新的基于操作系统(基于桌面)的窗口。

如果它是一个基于浏览器的窗口,你应该能够使用计时器或getWindowHandles进行调试

如果是基于桌面的窗口,请使用 ROBOT 框架

http://robotframework.googlecode.com/hg/doc/quickstart/quickstart.html

或AutoIT是不错的选择

自动 IT 参考处理弹出窗口

你可以这样写:

String currentWindowHandle = driver.getWindowHandle();
Set<String> windowHandles = driver.getWindowHandles(); //gives the handles of all opened windows
for (String windowHandle : windowHandles) {
    if (!windowHandle.contains(currentWindowHandle)) {
        driver.switchTo().window(windowHandle); //Switching to the new tab
        driver.switchTo().window(currentWindowHandle); //Returning to the previous page
    }
}

最新更新