java - 如何获取 selenium 上所有打开的窗口和浏览器的处理程序?

标签 java eclipse selenium browser

我正在寻找一种方法,该方法将跨所有打开的窗口、选项卡和浏览器返回 url 和处理程序,而不仅仅是当前在 selenium 中运行的方法。我下面的代码仅返回通过运行当前测试实例化的当前窗口。

String originalWindowHandle = driver.getWindowHandle();
System.out.println("original Window handles are: " + originalWindowHandle);
System.out.println("Title of original Page:" + driver.getTitle());  
java.util.Set<java.lang.String> windowHandles = driver.getWindowHandles();
System.out.println(windowHandles);
int count = windowHandles.size();
//if (count > 1) {
for (String window: windowHandles) {
        String url = driver.getCurrentUrl();
        System.out.println("current url is: " + url);
    }       
//}

最佳答案

您得到的计数正确。但从未切换到新打开的窗口。在增强的 for 循环中,您想要切换到每个窗口,然后检查 url

String originalWindowHandle = driver.getWindowHandle();
System.out.println("original Window handles are: " + originalWindowHandle);
System.out.println("Title of original Page:" + driver.getTitle());  
java.util.Set<java.lang.String> windowHandles = driver.getWindowHandles();
System.out.println(windowHandles);
int count = windowHandles.size();
//if (count > 1) {
for (String window: windowHandles) {
    if(!window.equals(originalWindowHandle)){
        driver.switchTo().window(window);
        String url = driver.getCurrentUrl();
        System.out.println("current url is: " + url);        
    }  
    //to go back to original    
    driver.switchTo().window(originalWindowHandle); 

}   
//}

关于java - 如何获取 selenium 上所有打开的窗口和浏览器的处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31929347/

相关文章:

java - 使用 jt400.jar 建立与 db2 的连接

java - 有关(刷新).class 文件的问题

eclipse - Maven:在 Eclipse 中为多个配置文件运行构建

python - 如何处理使用selenium python时出现的过滤框?

java - 在 Java 6 中使用继承的 stdin/stdout/stderr 启动进程

java - Linux Mint 无法安装 JDK

Java:递归函数中出现意外的运行时错误

eclipse - 如何安全地使用 Eclipse p2 配置文件?

javascript - 隐藏时如何到达选择元素?

java - 带有 Jenkins 的 Selenium WebDriver