2016-09-20 3 views
0

Ich versuche, eine unerwartete Browserwarnung in Chrome (zum Freilassen der Pflichtfelder leer) zu behandeln und erhielt zuvor eine Ausnahme für den Ladezustand, die gelöst wurde, nachdem ich den Chromtreiber zu 2,24 geändert habe und jetzt bin ich mit diesem Code-Schnipsel um die Warnung zu akzeptieren und erhalte vorbei an der SeiteBrowser Alert nicht behandelt wird Ergebnisse in Ausnahme

public void loginAlert() { 
     try{ 
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     } 
     catch (org.openqa.selenium.UnhandledAlertException e) { 
      Alert alert = driver.switchTo().alert(); 
      String alertText = alert.getText().trim(); 
      System.out.println("Alert data: "+ alertText); 
      alert.dismiss();} 
    } 

, die auf der Seite definiert ist, wo ich diese Warnung erwarten, auch die Taste, die angeklickt wird diese Warnung aufgerufen wird auf dem definierte selbe Seite.

Hier in meinem Test ist, was ich habe

at XXXXPage 
classname.WaitForPageLoad() 
Button.click() 
loginAlert() 

aber hier ist eine Ausnahme, die ich bekommen, ich habe viel Zeit damit verbracht, es zu lösen und wollen endlich um Hilfe bitten!

Objekt kann nicht werfen '[email protected]' mit Klasse 'org.openqa.selenium.remote.RemoteWebDriver $ RemoteAlert' Klasse 'javafx.scene.control.Alert' org .codehaus.groovy.runtime.typehandling.GroovyCastException: Objekt '[email protected]' mit der Klasse 'org.openqa.selenium.remote.RemoteWebDriver $ RemoteAlert' kann nicht in die Klasse 'javafx.scene' umgewandelt werden .control.Alert‘ bei Pages.OperatorLoginPage.loginAlert (OperatorLoginPage.groovy: 93)

auch, wenn ich auf dem Screenshot von Geb genommen aussehen scheint es so Ausnahme aufgetreten ist, noch bevor der Alarm Pop-up seit angezeigt wurde Der Alarm wird bei fehlgeschlagenem s nicht angezeigt tep und es kam nie auf, wenn ich den Bildschirm während des Tests überwacht.

+0

Haben Sie versucht, Geb zu verwenden, um die Warnungen zu behandeln? http://www.gebish.org/manual/0.9.1/javascript.html#alert –

Antwort

1

Sie scheinen javafx.scene.control.Alert in Ihre Klassendatei importiert zu haben (Ich gehe davon aus, indem zu sein in der IDE schnell, und akzeptieren nur die erste Empfehlung es Sie gab)

Auch, warum nicht die Geb mechanism for alert handling benutzen?

Verwandte Themen