Test, ob element vorhanden ist, mit Selenium WebDriver?

gibt es eine Möglichkeit, wie um zu testen, ob ein element vorhanden ist? Jede Methode findElement würde am Ende zu einer Ausnahme, aber das ist nicht das, was ich will, weil es sein kann, dass ein element nicht vorhanden, und das ist okay, das ist nicht ein fehlschlagen des Tests, so kann eine Ausnahme nicht die Lösung sein.

Ich habe festgestellt, dass dies post: Selenium c# Webdriver: Warten, Bis Element Vorhanden ist
Das ist aber für C# und ich bin nicht sehr gut darin. Kann jemand übersetzen den code in Java? Ich bin sorry, Jungs, ich versuchte es in Eclipse, aber ich bekomme es nicht direkt in Java-code.

Dies ist der code:

public static class WebDriverExtensions{
    public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds){

        if (timeoutInSeconds > 0){
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
            return wait.Until(drv => drv.FindElement(by));
        }

        return driver.FindElement(by);
    }
}
  • Ich habe ein paar Methoden, die arbeiten sehr effektiv bei der Prüfung für ein Objekt, aber es hängt davon ab, was Sie wollen zu tun. zum Beispiel wollen Sie schauen, um das element, bis es vorhanden ist, wollen Sie solange suchen, bis es nicht mehr existiert oder wollen Sie nur versuchen, es zu finden?
  • Java ist sehr ähnlich zu C#, ich denke, eines der Hauptprobleme, Sie ist hier in java ist es WebElement statt IWebElement
  • Wissen Sie über die implizite wait-Methode? Durch die Einstellung am Anfang von dem test, den Sie nie haben, um zu prüfen, ob ein element Existenz, wie es ist, verwendet das implizite warten Wert zu Umfrage, aber wenn es mehr als dieser Wert wird eine Ausnahme geworfen
  • Hier ist mein post über WebDriverWait in Java: WebDriverWait
  • Man könnte immer nur fangen Sie Ihre Ausnahme.
  • Wenn entweder Fall ok ist, kann dies problematisch sein, für die performance-test, da die wait-Zeit verbunden für das warten auf ein element, das Sie erwarten Sie nicht zu existieren wirklich summiert sich. Ich habe ein paar hacks zu umgehen, warten Sie mal, aber habe noch nicht gefunden, eine wirklich saubere Lösung für dieses.
  • Den nur speichern Weg ist: static bool isElementPresent(dynamisches element, Durch die von) { try { element.FindElement(by); return true; } catch (NoSuchElementException e) { return false; } }

InformationsquelleAutor tester | 2011-11-03
Schreibe einen Kommentar