gpt4 book ai didi

java - 尝试处理警报时 Webdriver 挂起

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:29 24 4
gpt4 key购买 nike

我正在使用 this question 中的代码。由于某种原因,每当我的测试遇到任何带有警报的内容时,它都不会返回。它击中了这个:

webDriver.switchTo().alert();

然后就永远旋转,永不返回。我预计不会出现任何警报异常,但什么也没有发生。

我也尝试过this没有成功。一旦到达

wait.until(ExpectedConditions.alertIsPresent());

它永远旋转。我注意到,如果我手动关闭浏览器,它将跳过它而不会引发异常。我正在使用 Ubuntu 14、最新版本的 Chrome、最新版本的 Webdriver 和 Chrome 驱动程序。我的 IDE 是 IntelliJ IDEA。

我找了很长一段时间,但收效甚微。谁能告诉我如何解决我的问题?

<小时/>

(更新)

我已经对此进行了相当多的尝试,并且注意到了一些奇怪的事情。在我的测试中,如果我在代码主体中使用警报函数,它就可以正常工作。但是,如果我从代码主体调用另一个函数,然后在该函数中调用警报函数,它将永远不会从调用中返回。不确定这是否有帮助,但我不知道为什么这很重要。

最佳答案

我遇到了同样的问题,以下是我发现的内容:

  1. 无法在 lambda 中使用 switchTo(驱动程序实例是参数)例如:

     wait.Until( driver =>  driver.SwitchTo().Alert() );

    会导致不稳定的行为(有时有效,有时不能,因为它挂起)。我认为这是因为 driver.switchTo() 更改了驱动程序状态,其中 lamdba 参数应该是不可变的。

  2. 浏览器驱动版本不兼容,只需更改驱动版本即可解决此问题。

关于java - 尝试处理警报时 Webdriver 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26516254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com