Модальное диалоговое окно с Selenium
Поэтому я пытаюсь перейти на страницу в IE9 с помощью Selenium, которая при загрузке страницы сообщает об ошибке сертификата. Используя AutoIT, я могу заставить его щелкнуть в браузере, а затем дважды нажать TAB, затем нажать Enter, без проблем. Однако, когда он продолжается, он выдает «Ошибка модального диалога». Вот метод, который должен обрабатывать ошибки IE Security Warning:
# Handle IE Security Warning errors.
class Selenium::WebDriver::Navigation
def to(url)
@bridge.get url
if @bridge.getTitle.match(/Certificate Error.*/)
Thread.new do
sleep 0.75
security_warning = 'Security Warning'
if @auto_it.WinActive(security_warning)
@auto_it.ControlClick(security_warning, "Yes", '[CLASS:Button; INSTANCE:2]' )
end
auto_it = WIN32OLE.new("AutoItX3.Control")
auto_it.WinWait('[CLASS:IEFrame]','', 90)
x = auto_it.WinGetPosX('[CLASS:IEFrame]')
y = auto_it.WinGetPosY('[CLASS:IEFrame]')
auto_it.MouseClick("left", x + 100, y + 200, 1, 0)
auto_it.Send "{TAB 2}{ENTER}"
sleep 0.25
wait.until { @bridge.executeScript("return document.readyState;") == "complete" }
end
end
end
Лучшее, что я могу сделать здесь - это вызов «sleep 0.25»:
auto_it.Send "{TAB}{ENTER}"
(За исключением того, что {ENTER} ничего не делает, он просто висит там до истечения времени ожидания теста)
Мне нужно знать, как заставить Selenium взаимодействовать с всплывающим диалоговым окном. Я знаю, что Selenium не очень хорошо с ними справляется (вот почему используется AutoIT). Есть идеи?
Постскриптум Это не мой код, этот метод был создан моим коллегой