在我的代码中,我到达了一个使用 selenium 的页面,其中有一个链接在同一页面上作为弹出窗口打开,但该链接正在使用,所以它就像一个在新窗口中打开的新页面。
我可以单击该链接并打开页面,但是当我执行 driver.getWindowHandles() 时,它只返回大小为 1 而不是 2,因此我无法切换到新窗口。
下面是我正在使用的代码:
String parent = driver.getWindowHandle();
driver.findElement(By.xpath("//a[@id='abc']")).click();
// after clicking on the link
try{
Thread.sleep(1000);
Set<String> availableWindows = driver.getWindowHandles();//this set size is
// returned as 1 and not 2
String newWindow = null;
for (String window : availableWindows) {
if (!parent.equals(window)) {
newWindow = window;
}
}
assertNotNull(newWindow);
// switch to new window
driver.switchTo().window(newWindow);
// do assert the elements in the new window
// and then close the new window
driver.close();
// switch to parent
driver.switchTo().window(parent);
// close main window
driver.close();}
catch(Exception e){
由于弹出窗口是主窗口本身的一部分,即为什么我无法通过 getWindowHandle(); 获得正确的大小;
但我的要求是只保存弹出页面。现在,保存代码正在保存母版页详细信息以及弹出内容,因为每次调用母版页驱动程序时。
我可以采取任何解决方法来仅获取弹出页面的驱动程序吗?
保存代码是通用的,这在本参考中并不重要。我想要的只是获取弹出页面的驱动程序