我正在使用Selenium 3.7.1和firefox最新版本67.0.2,实际上是在尝试单击基于Windows的弹出窗口(使用AutoIT脚本单击“确定”)后尝试切换回主页。但是在弹出窗口关闭后,我无法切换回第一个窗口(即主页)。总共有两个打开的窗口。
由于无法将控件带回父页面,因此我使用下面的代码切换回主页而不关闭父窗口。最近,在代码运行正常之前,我们对项目进行了升级。
public void switchToNewWindow(int windowNumber) {
Set<String> s = driver.getWindowHandles();
Iterator<String> ite = s.iterator();
int i = 1;
while (ite.hasNext() && i < 10) {
String popupHandle = ite.next().toString();
driver.switchTo().window(popupHandle);
System.out.println("Window title is : " + driver.getTitle());
if (i == windowNumber)
break;
i++;
}
}
我得到以下输出:
org.openqa.selenium.NoSuchWindowException:浏览上下文已被丢弃
答案 0 :(得分:0)
仅供参考:
您可能不需要使用AutoIt
,可以通过以下方式接受警报:
Alert alert = driver.switchTo().alert();
driver.switchTo().alert();
alert.accept();
只需使用switchTo().defaultContent()
:
driver.switchTo().defaultContent();
希望这会有所帮助!
答案 1 :(得分:0)
String mainWindow = driver.getWindowHandle();
//here, your action to bring up a new window
driver.click
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
if(!winHandle.equals(mainWindow)) {
driver.close();
}
}
//switch to main window
driver.switchTo().window(mainWindow);