Как исправить ошибку "неожиданное открытие оповещения: {текст оповещения:}" - PullRequest
1 голос
/ 15 апреля 2019

У меня есть проект в ruby ​​с AngularJS, и в настоящее время я конвертирую тесты в Chrome без головы от Phantomjs, и у меня все время появляется ошибка:

Selenium::WebDriver::Error::UnhandledAlertError:
            unexpected alert open: {Alert text : }

Это происходит в нескольких тестовых файлах .. Iпытался добавить

"accept_alert {}" перед командой:

#from

find('.sp-advanced-configuration').click

#to
accept_alert{ find('.sp-advanced-configuration').click  } 

, но получил

Failure/Error: accept_alert{ ... }

          Capybara::ModalNotFound:
            Unable to find modal dialog

, а также

Selenium::WebDriver::Error::UnhandledAlertError:
            unexpected alert open: {Alert text : }

Не уверен, что еще попробовать

/ *********** ********* /

После изучения этого, кажется, проблемапроисходит всякий раз, когда в тесте остаются несохраненные изменения перед переходом к следующему тесту.

Есть ли способ принять это для каждого теста, не добавляя

 after do 
    execute_script('window.onbeforeunload = undefined')
  end

в каждый файл теста?

1 Ответ

0 голосов
/ 22 апреля 2019

Причина, по которой вы видите это, заключается в том, что Poltergesit / PhantomJS автоматически принимал неожиданные модальные модалы. Драйвер селена этого не делает, потому что ваш тест должен либо активно принимать, либо отклонять его. Является ли find('.sp-advanced-configuration').click действием, открывающим окно с предупреждением? Из ошибок, которые вы получаете, я бы не догадался. Блок accept_alert, который получает, должен быть блоком, который фактически вызывает открытие модальной системы. Это означает, что ваш код, вероятно, должен быть

accept_alert { # action that triggers the alert }
find('.sp-advanced-configuration').click
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...