我正在使用InternetExplorerDriver(我必须)。我有两个窗把手。我必须在这些窗口之间切换多个时间。 我使用这两行来做到这一点。
driver.switchTo().window(myWindowHandle1);
driver.findElement(By.xpath("//body")).click();
我添加了对身体的点击,因为否则有时开关无法正常工作,从那以后这对我很有用。
现在我遇到了一个新问题。 我的第三个窗口开关(1. window1 - > window2; 2. window2 - > window1; 3. window1 - > window2;)不再起作用。
ElementNotVisibleException: Cannot click on element --- in this case, line 2
所以身体不再可见了。 以前的窗口开关工作正常,因此手柄是正确的。 查找body元素By.tagName没有解决问题。 有人有同样的问题吗?溶液
提前致谢
此致
答案 0 :(得分:0)
我终于找到了答案, 我使用以下方法切换到新窗口,
public String switchwindow(String object, String data){
try {
String winHandleBefore = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
}catch(Exception e){
return Constants.KEYWORD_FAIL+ "Unable to Switch Window" + e.getMessage();
}
return Constants.KEYWORD_PASS;
}
要移至父窗口,我使用以下代码
public String switchwindowback(String object, String data){
try {
String winHandleBefore = driver.getWindowHandle();
driver.close();
//Switch back to original browser (first window)
driver.switchTo().window(winHandleBefore);
//continue with original browser (first window)
}catch(Exception e){
return Constants.KEYWORD_FAIL+ "Unable to Switch to main window" + e.getMessage();
}
return Constants.KEYWORD_PASS;
}
使用此代码在窗口之间切换。