Modal Dialogfenster mit Selen
So versuche ich, mit Selen zu einer Seite in IE9 zu navigieren, die beim Laden der Seite einen Zertifikatfehler anzeigt. Mit AutoIT kann ich es innerhalb des Browsers zum Klicken bringen und dann zweimal TAB drücken und dann die Eingabetaste drücken, keine Probleme. Wenn es jedoch fortgesetzt wird, wird der Fehler "Modaler Dialog vorhanden" ausgegeben. Hier ist die Methode, die IE-Sicherheitswarnungsfehler behandeln soll:
# 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
Das Beste, was ich hier tun kann, ist unter dem Aufruf "sleep 0.25" Folgendes zu tun:
auto_it.Send "{TAB}{ENTER}"
(Außer das {ENTER} nichts tut, es hängt nur dort, bis der Test abgelaufen ist)
Ich muss wissen, wie ich Selen dazu bringe, mit dem daraufhin angezeigten Dialogfeld zusammenzuarbeiten. Ich weiß, dass Selen nicht sehr gut damit umgeht (weshalb AutoIT verwendet wird). Irgendwelche Ideen
P.S. Dies ist nicht mein Code. Diese Methode wurde von meinem Mitarbeiter erstellt.