2016-03-31 6 views
1

Das Tool klickt auf eine Schaltfläche und ein modales Fenster erscheint (wo ich einige Informationen ausfüllen muss und später zum übergeordneten Fenster). Aber sobald das neue modale Fenster erscheint, stoppt mein Code. Der Code wird fortgesetzt, sobald ich das neue Popup-Fenster manuell schließe .Programm nach dem Öffnen eines Pop-up mit Selen-Webdriver

Da der Code selbst angehalten wird, kann ich weder im neuen Popup-Fenster noch im übergeordneten Fenster Aktionen ausführen.

System.out.println ("Up"); 
WebElement addButton = driver.findElement(By.id("btnAdd")); 
addButton.click(); 
System.out.println ("Down"); 

In dem obigen Code, Up wird in der Konsole ausgegeben, während unten nicht gedruckt wird erhalten, bis ich manuell das Pop-up-Fenster schließen.

Antwort

0

Endlich eine Lösung nach vielen Tagen verschwenden :) helfen.

Die einzige Möglichkeit ist nicht verwenden showModalDialog. Dies kann durch Zugabe des folowing vor dem .click erfolgen():

((JavascriptExecutor) driver).executeScript("window.showModalDialog = window.open;"); 

, die anstelle von window.showModalDialog window.open werden nennen.

1

müssen Sie die Kontrolle über Ihr Pop-up-Fenster zu bewegen, bevor eine Operation auf Pop-up-Fenster zu tun: -

Code Selen Kontrolle über Pop-up-Fenster zu bewegen: -

driver.switchTo().alert(); 

Jetzt können Sie eine Aktion für das Popup ausführen.

Um die Kontrolle zurück auf Hauptfenster bei Temperaturen unter Code: -

driver.switchTo().defaultContent(); 

Hoffen, dass es SieFormal

+0

bekommen aber direkt nach dem Pop-up öffnen, meine Projekt hält an. Selbst wenn ich driver.swithTo.alert() nach addButton.click() schreibe, wird es nicht aufgerufen. – rsaha77

+0

Was ist der Fehler, vor dem Sie stehen? –

+0

Wenn nur 2 Schaltflächen vorhanden sind, können Sie driver.switchTo() verwenden. Alert(). Accept(); oder driver.switchTo(). alert(). abweisen(); –

2
driver.switchTo().alert(); 

Schreib diese Codezeile nach Kontrolle auf die Schaltfläche klicken, wird Schalter in die Pop-up und dann

alert.accept(); 

Alarm schreibt der Nähe

Verwandte Themen