我正在寻找一种方法,该方法将跨所有打开的窗口、选项卡和浏览器返回 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/