Ventana de diálogo modal con selenio
Así que estoy tratando de navegar a una página en IE9 usando Selenium que, al cargar la página, dice que hay un error de certificado. Usando AutoIT, puedo hacer que haga clic dentro del navegador y luego presione TAB dos veces y luego presione enter, sin problemas. Sin embargo, cuando continúa, arroja un "error presente de diálogo modal". Este es el método que se supone que debe manejar los errores de advertencia de seguridad de 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
Lo mejor que puedo hacer aquí está debajo de la llamada "dormir 0.25" es hacer esto:
auto_it.Send "{TAB}{ENTER}"
(Excepto que {ENTER} no hace nada, solo se cuelga allí hasta que se agote el tiempo de prueba)
Necesito saber cómo hacer que Selenium interactúe con ese cuadro de diálogo que aparece. Sé que Selenium no los maneja muy bien (por eso se usa AutoIT). ¿Algunas ideas?
PD Este no es mi código, este método fue creado por mi compañero de trabajo