2017-03-04 16 views
0

Mein Test überprüft, ob der Benutzer sich auf der Site anmelden kann. Ich schrieb einen Code, um zu alarmieren, der funktioniert, aber Teile in catch zeigt. Ich habe versucht, Alarm ohne try und catch zu schreiben, zeigt aber einen Fehler an.Warnung wird nicht angezeigt

So schreiben Sie eine Warnung ohne try und catch und Warnung, um angezeigt zu werden (Test zu bestehen).

org.openqa.selenium.TimeoutException: Expected condition failed: waiting for alert to be present (tried for 5 second(s) with 500 MILLISECONDS interval) 

Dies ist mein Code:

public void getMessage() { 
     //Verify that is message preview 
     try { 
     WebDriverWait wait = new WebDriverWait(driver, 5); 
     wait.until(ExpectedConditions.alertIsPresent()); 
     Alert alert = driver.switchTo().alert(); 
     System.out.println(alert.getText()); 
     alert.accept(); 
     Assert.assertTrue(alert.getText().contains("ERROR: Invalid login credentials.")); 
     } catch (Exception e) { 
     System.out.println("Alert is not displayed"); 
     } 
+0

Also, was ist die Frage? – Andersson

+1

Meine Vermutung ist, dass die Warnung ein HTML-Dialog und keine JS-Warnung ist. Wenn die Warnung erscheint, klicken Sie mit der rechten Maustaste darauf. Wenn Sie das Kontextmenü mit der rechten Maustaste aufrufen und Inspizieren können, ist es HTML-basiert und keine Warnung. – JeffC

+0

Ja, das ist html.

FEHLER : Ungültige Anmeldedaten. –

Antwort

0

Da Sie haben bestätigt, dass der Dialog nicht wirklich ein JS Alarm Dialog ist, werden Sie nicht in der Lage sein Alert zu verwenden. Die gute Nachricht ist, dass es HTML ist wie jeder andere Teil der Seite, so dass Sie nur das Element, das den Fehlertext enthält, abkratzen können.

Verwandte Themen