Java Webdriver在尝试处理警报时挂起
我正在使用来自的代码。出于某种原因,每当我的测试遇到任何带有警报的内容时,它都不会返回。它击中了这一点:Java Webdriver在尝试处理警报时挂起,java,selenium-webdriver,selenium-chromedriver,Java,Selenium Webdriver,Selenium Chromedriver,我正在使用来自的代码。出于某种原因,每当我的测试遇到任何带有警报的内容时,它都不会返回。它击中了这一点: webDriver.switchTo().alert(); 然后永远旋转,再也不会回来。我期望无警报出现异常,但什么也没有发生 我也尝试过,但没有成功。一旦它击中了目标 wait.until(ExpectedConditions.alertIsPresent()); 它永远旋转。我注意到,如果我手动关闭浏览器,它将跳过它而不会引发异常。我正在使用Ubuntu14,最新版本的Chrome,
webDriver.switchTo().alert();
然后永远旋转,再也不会回来。我期望无警报出现异常,但什么也没有发生
我也尝试过,但没有成功。一旦它击中了目标
wait.until(ExpectedConditions.alertIsPresent());
它永远旋转。我注意到,如果我手动关闭浏览器,它将跳过它而不会引发异常。我正在使用Ubuntu14,最新版本的Chrome,最新版本的Webdriver和Chrome驱动程序。我的IDE是IntelliJ IDEA
我找了好一阵子都没找到。有人能告诉我如何解决我的问题吗
(更新)
我已经玩了很多次了,我注意到了一些奇怪的事情。在我的测试中,如果我在代码主体中使用了警报函数,它就可以正常工作。但是,如果我从代码主体调用另一个函数,然后在函数中调用警报函数,它将永远不会从调用中返回。不确定这是否有帮助,但我不知道这有什么关系 我也有同样的问题,以下是我发现的:
driver.switchTo()
改变了驱动程序的状态,其中lamdba参数应该是不可变的 wait.Until( driver => driver.SwitchTo().Alert() );