Ich muss das Vorhandensein von Alert in WebDriver überprüfen.
Manchmal wird eine Warnung angezeigt, manchmal jedoch nicht. Ich muss zuerst überprüfen, ob die Warnung vorhanden ist, dann kann ich sie akzeptieren oder schließen, oder es wird angezeigt: Keine Warnung gefunden.
ExpectedConditions.alertIsPresent()
gibt Ihnen genau das gleiche, aber auf eine schönere Art und Weise und in nur einer Zeile :)Mit der folgenden Option (C # -Implementierung, jedoch ähnlich in Java) können Sie feststellen, ob eine Ausnahme ohne Ausnahmen und ohne Erstellung des
WebDriverWait
Objekts vorliegt.quelle
Ich würde vorschlagen, ExpectedConditions und alertIsPresent () zu verwenden . ExpectedConditions ist eine Wrapper-Klasse, die nützliche Bedingungen implementiert, die in der ExpectedCondition- Schnittstelle definiert sind .
WebDriverWait wait = new WebDriverWait(driver, 300 /*timeout in seconds*/); if(wait.until(ExpectedConditions.alertIsPresent())==null) System.out.println("alert was not present"); else System.out.println("alert was present");
quelle
Ich fand, dass das Fangen von Ausnahmen
driver.switchTo().alert();
inFirefox
(FF V20 & Selen-Java-2.32.0) so langsam ist. "Also wähle ich einen anderen Weg:
Und es ist ein besserer Weg, wenn in den meisten Testfällen KEIN Dialog vorhanden ist (das Auslösen einer Ausnahme ist teuer).
quelle
ExpectedConditions.alertIsPresent
Ich würde vorschlagen, ExpectedConditions und alertIsPresent () zu verwenden . ExpectedConditions ist eine Wrapper-Klasse, die nützliche Bedingungen implementiert, die in der ExpectedCondition- Schnittstelle definiert sind .
public boolean isAlertPresent(){ boolean foundAlert = false; WebDriverWait wait = new WebDriverWait(driver, 0 /*timeout in seconds*/); try { wait.until(ExpectedConditions.alertIsPresent()); foundAlert = true; } catch (TimeoutException eTO) { foundAlert = false; } return foundAlert; }
Hinweis: Dies basiert auf der Antwort von nilesh, ist jedoch angepasst, um die TimeoutException abzufangen, die von der wait.until () -Methode ausgelöst wird.
quelle
Dieser Code prüft, ob die Warnung vorhanden ist oder nicht.
quelle
ExpectedConditions
ist veraltet, also:C # Selen 'ExpectedConditions ist veraltet'
quelle
public boolean isAlertPresent () {
}}
quelle
quelle