我有一个包含多个弹出窗口的应用程序。我点击一个按钮,弹出一个窗口(比如title="Child1"
)。我能够在这个弹出窗口中工作。当我点击child1窗口中的按钮时,会打开第三个弹出窗口(例如grandchild1
)。所以它就像:
MainWindow<----Child1<---Grandchild1
Selenium无法识别孙子窗口。
win=driver.getWindowHandles().toArray();
此代码也只显示2个窗口。
selenium.selectWindow("Grandchild1");
此代码也会抛出错误。对此有何帮助?
答案 0 :(得分:0)
使用以下流程执行操作以处理WebDriver中的多个窗口。
String mainWindowHanhle=driver.getWindowHandle();
//Do/Click something to open child window
Set<String> childParentHandles=driver.getWindowHandles();
childParentHandles.remove(mainWindowHanhle); //removing main window handle from Set
driver.switchTo().window((String) childParentHandles.toArray()[0]); //switching the control to child window
//Do/Click something in Child window to open grand_child window
Set<String> grandChild_Child_ParentHandles=driver.getWindowHandles();
grandChild_Child_ParentHandles.remove(mainWindowHanhle);
grandChild_Child_ParentHandles.remove(childParentHandles); //remove parent,child window handle from set
//Now switch the control to grand_Child window
driver.switchTo().window((String) grandChild_Child_ParentHandles.toArray()[0]);