Сумерки не могут закрыть диалоговое окно из-за UnexpectedAlertOpenException - PullRequest
0 голосов
/ 23 апреля 2019

Я использую Laravel Dusk для написания тестов браузера для приложения Laravel 5.7.В тесте я перехожу на страницу и нажимаю кнопку, которая вызывает диалог подтверждения.Я пытаюсь проверить, что закрытие диалогового окна не меняет URL страницы.

Я пытался добавить $this-expectException(UnexpectedAlertOpenException::class) перед запуском теста, чтобы попытаться заставить код понять, что диалог должен отображаться

    {
        $this->expectException(UnexpectedAlertOpenException::class);

        $this->browse(function (Browser $browser) {
            $browser->loginToWave()
                ->goToSystemsEdit();

            $browser->waitFor('@delete-systems-button')
                ->click('@delete-systems-button')
                ->assertDialogOpened('This will delete the system. Please seek advice before doing this. Continue?')
                ->dismissDialog()
                ->assertPathBeginsWith('systems/edit');
        });
    }

Я ожидаю, что тест закрывает диалоговое окно и проверяет утверждение пути.

На самом деле происходит то, что выдается UnexpectedAlertOpenException:

1) Tests\Browser\Systems\DeleteSystemTest::testSystemNotDeletedIfConfirmIsDismissed
Facebook\WebDriver\Exception\UnexpectedAlertOpenException: unexpected alert open: {Alert text : This will delete the system. Please seek advice before doing this. Continue?}
  (Session info: chrome=71.0.3578.98)
  (Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.9.125-linuxkit x86_64)

/var/www/html/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:140
/var/www/html/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:326
/var/www/html/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:547
/var/www/html/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:345
/var/www/html/vendor/laravel/dusk/src/Browser.php:261
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:139
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Collection.php:418
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:140
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:69
/var/www/html/tests/DuskTestCase.php:68

...