【问题标题】:Selenium with Chromedriver stops when alert appears出现警报时,带有 Chromedriver 的 Selenium 停止
【发布时间】:2016-12-13 11:11:44
【问题描述】:

我仍在使用 Chromedriver 使用 Selenium 进行自动化网站测试。

现在我们有一些帐户要登录进行测试,这些帐户在登录后会立即收到浏览器警报。此时 Chromedriver 抛出 UnexpectedAlertException 并退出。因此,由于我们在页面上收到各种警报,因此目前无法进行进一步测试。

奇怪的是,对于我们正在测试的其他一些页面,这不会发生,而是继续测试,尽管我们也会收到相同的警报。

是什么导致 Chromedriver 出现“意外”警报,有没有办法阻止它使我们的测试崩溃?

【问题讨论】:

  • 你在 selenium 中使用什么语言?
  • PHP(与 Mink)

标签: selenium selenium-chromedriver


【解决方案1】:

您应该设置功能 UnexpectedAlertBehaviour.IGNORE

【讨论】:

  • 我现在已经这样做了,但是 Chromedriver 仍然抛出异常。
【解决方案2】:

看起来 Selenium 2 驱动程序的 Mink 实现不支持警报和确认提示:https://github.com/minkphp/Mink/issues/158#issuecomment-230479602

以上链接或许可以为您提供 Mink 的解决方法。

对于 PHPUnit selenium,如果您可以使用它或其他遇到此问题的人,您可以使用已实现的 dismissAlert()acceptAlert()alertText() 函数:

// Log in, etc
$this->assertEquals('Your alert text', $this->alertText());
$this->acceptAlert(); // or $this->dismissAlert();

【讨论】:

  • 我们已经有一个类似的解决方案,它在我们大约一半的网站上运行良好,但另一方面,一旦警报打开,就会出现异常。然而,这一切似乎都是同一个浏览器警报。
猜你喜欢
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多