使用selenium在IE中处理Refresh上的警报

时间:2014-08-13 11:52:51

标签: java internet-explorer testing selenium

我正在使用IEDriver来测试我的webapp。我的测试是用Java编写的,驱动程序定义如下:

System.setProperty("webdriver.ie.driver","C:\\Selenium\\IE\\IEDriverServer.exe");
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
driver = new InternetExplorerDriver(capabilities);
driver.manage().window().maximize();

在表单提交后,测试模拟F5时,我遇到了问题:

Actions actions = new Actions(driver);
actions.keyDown(Keys.CONTROL).sendKeys(Keys.F5).perform();

结果出现IE窗口说: enter image description here

我试图通过执行

跳过它
actions.keyDown(Keys.CONTROL).sendKeys(Keys.ENTER).perform();

driver.switchTo().alert().accept();  

据我所知,此窗口不是警报,因此驱动程序无法切换到该窗口。 那么有没有办法在这个窗口中执行“重试”?

2 个答案:

答案 0 :(得分:1)

Java Robot实用程序可用于单击“重试”按钮。示例代码如下:

Robot robot = new Robot();
robot.keyPress(java.awt.event.KeyEvent.VK_ENTER);
robot.keyRelease(java.awt.event.KeyEvent.VK_ENTER);

希望它有所帮助!

答案 1 :(得分:0)

如果您使用F5,则该页面会刷新已修改的项目,并会考虑cache,因此您会收到警告。

而是尝试重新加载整个页面,例如

driver.navigate().refresh();

这将加载页面而不会发出任何警告。 This帖子会为您提供一些见解。

寻找Diff b/w F5 and navigate().refresh()