2

尝试使用该ieDriver.switchTo().window(windowHandle)方法切换到弹出窗口,但我的测试脚本停止并且没有继续。

当我手动关闭窗口时,出现错误

org.openqa.selenium.NoSuchWindowException: Unable to get browser

我知道窗口存在,因为我使用了该ieDriver.getWindowHandles()方法来检索它。

我所有的保护模式设置都是一样的,我什至尝试使用该'INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS'技术无济于事。还有其他建议吗?

我在 Windows 7 机器上运行带有 IE9 的 selenium 2.32.0。

4

3 回答 3

1

上面的代码用于处理窗口弹出。如果要处理警报或确认弹出窗口等 javascript 弹出窗口,则需要使用

driver.SwitchTo.alert().accept();

或者

driver.SwitchTo.alert().dismiss();

希望对你有帮助

于 2013-06-18T05:24:43.613 回答
0

也许弹出窗口是用 iframe 生成的,那么你必须使用 switchTo.frame();

于 2013-06-18T13:08:42.110 回答
0

您应该执行以下操作:

  WebDriverWait webDriverWait= new WebDriverWait(driver, 5000);
  webDriverWait.until(ExpectedConditions.alertIsPresent());
  driver.switchTo().alert().accept();

首先,您将初始化一个 WebDriverWait 对象,该对象将允许您等到满足某些条件,在这种情况下 - 存在警报。然后,驱动程序将切换到此警报,

于 2013-12-11T10:13:34.063 回答