【问题标题】:Unexpected alert open: {Alert text : } laravel dusk意外警报打开:{警报文本:} laravel 黄昏
【发布时间】:2018-01-24 06:40:01
【问题描述】:

我正在创建一些黄昏测试,有时我在一些测试中得到unexpected alert open: {Alert text : } 错误。在我的本地测试中有时会通过,有时会抛出此错误。我不确定是什么导致了这个问题,因为我的页面中没有警报,如Alert text is also empty。在 UI 模式下运行测试时,我在页面中看不到任何警报。

以下是我本地错误的完整信息

1) Tests\Browser\contacts\CreateContactTest::testCreate
Facebook\WebDriver\Exception\UnexpectedAlertOpenException: unexpected 
alert open: {Alert text : }
(Session info: chrome=63.0.3239.132)
(Driver info: chromedriver=2.33.506106 
(8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.13.2 x86_64)

另外,我的CircleCI 测试也抛出了同样的错误,以下是关于 CircleCI2 的信息

1) Tests\Browser\auth\RegisterTest::testRegister
Facebook\WebDriver\Exception\UnexpectedAlertOpenException: unexpected 
alert open: {Alert text : }
(Session info: headless chrome=63.0.3239.132)
(Driver info: chromedriver=2.35.528139 
(47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.4.0-111-generic x86_64)

可能是什么导致了此类问题,请记住,我没有在代码中打开任何警报,并且测试有时也会成功。 Can this be any chrome driver issue ?

【问题讨论】:

  • 我在使用 WordPress 时遇到了完全相同的问题,我尝试了不同的解决方案,但它们都不起作用。我认为此警报不是由网站生成的,而是由无头 chrome 生成的。我正在使用 Docksal 开发环境和 selenium/standalone-chrome 图像。
  • 同样的问题,我总共有 3 个测试,每一个都通过了,但是当我同时运行所有 3 个测试时,它会因为这个异常而失败。
  • 有没有人找到解决办法?我有时也会遇到这种情况,这会不必要地破坏我们的构建。我无法在 UI 模式下重现这一点,也无法在本地环境中无头绪。它似乎只发生在 Codeship 上。哪个使用linux驱动(本地是mac驱动)

标签: php laravel-5 selenium-chromedriver laravel-dusk


【解决方案1】:

这发生在我身上,因为我在页面上注册了一个 onbeforeunload 处理程序,以提醒用户他们有未保存的工作。 测试完成后,浏览器会“关闭”页面,从而弹出这个警告/对话框。

我通过显式触发此事件并在测试用例结束时接受对话框来修复它:

$browser->visit('about:blank')->waitForDialog()->acceptDialog();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-29
    • 2015-01-02
    • 2017-07-22
    • 2013-10-10
    • 2021-11-01
    • 1970-01-01
    • 2019-11-22
    相关资源
    最近更新 更多