Heim >Java >javaLernprogramm >Implizites vs. explizites Warten in Selenium WebDriver: Welches sollten Sie wählen?
In Java Seleneium-WebDriver kann es vorkommen, dass die Anwendung Zeit zum Laden benötigt Benutzeroberfläche, was zu Fehlern bei der Elementpositionierung führt. Um dieses Problem zu beheben, haben Sie zwei Warteoptionen: implizites und explizites Warten.
Implizites Warten:
Wie in Ihrem Codeausschnitt gezeigt, legen Sie eine implizite Wartezeit von 2 fest Sekunden:
<code class="java">driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);</code>
Dies bedeutet, dass der Treiber maximal 2 Sekunden wartet, bis ein Element verfügbar wird, bevor er einen Fehler auslöst.
Explizites Warten:
Explizites Warten erfordert, dass eine bestimmte Bedingung erfüllt ist, bevor der Treiber fortfährt. Zu diesem Zweck kann die WebDriverWait.until-Methode verwendet werden:
<code class="java">WebDriverWait wait = new WebDriverWait(driver, 10); WebElement textbox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("textbox")));</code>
Hier wartet der Treiber bis zu 10 Sekunden, bis das Element mit der ID „textbox“ sichtbar wird, bevor er fortfährt.
Was ist besser?
Die Wahl zwischen implizitem und explizitem Warten hängt von der Situation ab:
Empfehlung:
Für Situationen wie Ihre, in denen die Elementpräsenz nicht innerhalb eines bestimmten Zeitrahmens garantiert ist, verwenden Sie eine explizite Wartezeit, insbesondere eine fließende Wartezeit Die in der Antwort angegebene wird empfohlen.
<code class="java">public WebElement fluentWait(final By locator) { // Fluent wait implementation provided in the answer... } WebElement textbox = fluentWait(By.id("textbox"));</code>
Durch die fließende Wartezeit können Sie das Timeout und das Abfrageintervall anpassen, was für mehr Flexibilität sorgt und unnötige Verzögerungen verhindert.
Das obige ist der detaillierte Inhalt vonImplizites vs. explizites Warten in Selenium WebDriver: Welches sollten Sie wählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!