2016-08-09 7 views
-1

enter image description hereКак справиться с этим всплывающим окном?

Вышеупомянутый рисунок состоит из моего всплывающего изображения, может ли кто-нибудь вести меня, как справиться с этим всплывающим окном?

+0

Непонятно, что означает * ручка * в вашем контексте. Является ли всплывающее окно неожиданным? – Filburt

+0

Да, это неожиданно, но нам нужно обработать это всплывающее окно, когда я говорю дескриптор, я могу нажать кнопку отпуска или остаться. – Gopal

+0

@Gopal, можете ли вы уточнить, какой браузер вы используете? Вы фактически используете и Watir-Webdriver и Watir-Classic? Это очень разные реализации. –

ответ

0

Это всплывающее окно можно рассматривать как любое другое предупреждение. Вы можете подтвердить диалог (т.е. нажмите Leave) с помощью:

browser.alert.ok 

Если вы не знаете, если всплывающее окно будет или не будет, вы можете добавить проверку на его присутствие:

browser.alert.ok if browser.alert.present? 

Если это не работает, альтернативой является отключение функции, вызываемой при разгрузке. Убедитесь, что вы отменили функцию до ее запуска.

# Remove the function 
browser.execute_script("window.onbeforeunload = null") 

# Then trigger the action that leaves the page 
browser.link.click 
+0

Я пробовал, но он выбрасывает эту ошибку 'C: /Ruby21/lib/ruby/gems/2.1.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/response.rb: 70: in assert_ok «: неизвестная ошибка: не может определить статус загрузки (Селен :: WebDriver :: Error :: UnknownError) от неожиданной тревоги открытой (информация Session: хром = 52.0.2743.116) (информация Driver: chromedriver = 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) , платформа = Windows NT 6.1 SP1 x86_64) ' – Gopal

+0

Вам нужно вызвать сценарий перед действием, которое открывает предупреждение, а не после генерации предупреждения. Во всяком случае, выполнение JavaScript для предотвращения создания диалога, вероятно, является неправильным выбором (т. Е. Может иметь различные непредвиденные риски). Лучшее решение - фактически взаимодействовать с всплывающим окном, что может быть сделано с помощью API Alert (см. Обновленный ответ). –

+0

Спасибо, он отлично работает. Но browser.alert.ok здесь не работает. – Gopal