Как обрабатывать всплывающие окна в IE, используя Ruby

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

2 ответа

Исходя из вашего последнего вопроса, я предполагаю, что вы используете Watir-Classic (хотя вы также указали Watir-Webdriver).

Как уже упоминалось в комментариях @orde, у Ватира есть Alert класс для обработки этих типов диалогов. К сожалению, с точки зрения нажатия кнопок, Watir-Classic имеет только #ok Метод определен:

# Press the "OK" button on the JavaScript dialog.
def ok
  dialog.button(:value => "OK").click
  wait_until_not_exists
end

Это не будет работать для этого диалогового окна, так как вместо кнопки "ОК" есть кнопки "Да" и "Нет". Вам нужно будет продублировать эту функцию с правильным значением.

Обратите внимание, что dialog является окном RAutomation и больше не относится к конкретному коду Watir. В результате значения кнопок не всегда интуитивно понятны - это не всегда просто текст, который вы видите. Чтобы получить правильные значения, вы должны спросить у диалога, какие значения он видит:

browser.alert.send(:dialog).buttons.map(&:value)
#=> ["&Yes", "&No"]

Затем мы можем сделать те же звонки, что и #ok метод, но с правильным значением:

alert = browser.alert
alert.send(:dialog).button(:value => '&Yes').click
alert.wait_while_present

Этот код работает нормально для обработки этого типа всплывающих окон:

save_dialog = WIN32OLE.new("AutoItX3.Control") save_dialog.ControlClick("Windows Internet Explorer", "Yes", "[CLASS:Button;INSTANCE:1]")
Другие вопросы по тегам