Janela de diálogo modal com Selênio
Então, eu estou tentando navegar para uma página no IE9 usando o Selenium que, ao carregar a página, diz que há um erro de certificado. Usando o AutoIT, eu consigo fazê-lo clicar no navegador e pressionar TAB duas vezes e pressionar Enter, sem problemas. No entanto, quando continua, lança um "erro de presente na caixa de diálogo modal". Aqui está o método que deve lidar com erros de aviso de segurança do IE:
# 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
O melhor que posso fazer aqui está abaixo da chamada "suspensão de 0,25":
auto_it.Send "{TAB}{ENTER}"
(Exceto que o {ENTER} não faz nada, ele fica lá até o tempo limite do teste)
Preciso saber como fazer o Selenium interagir com a caixa de diálogo que aparece. Eu sei que o Selenium não os trata muito bem (e é por isso que o AutoIT está sendo usado). Alguma ideia?
P.S. Este não é o meu código, este método foi criado por meu colega de trabalho