Heim >Java >javaLernprogramm >Wie kann ich vor dem Klicken zuverlässig auf die Sichtbarkeit von Elementen in WebDriver warten?

Wie kann ich vor dem Klicken zuverlässig auf die Sichtbarkeit von Elementen in WebDriver warten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 05:58:10292Durchsuche

How to Reliably Wait for Element Visibility in WebDriver Before Clicking?

WebDriver: Warten auf Elementpräsenz

Frage: Wie kann ich zuverlässig warten, bis ein Element vorher sichtbar wird? darauf klicken? Implizite Wartezeiten allein scheinen inkonsistent zu sein.

Um dieses Problem zu beheben, können implizite Wartezeiten verwendet werden. Eine zuverlässigere Lösung ist jedoch:

for (int second = 0;; second++) {
    Thread.sleep(sleepTime);
    if (second >= 10)
        fail("timeout : " + vName);
    try {
        if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed())
            break;
    } catch (Exception e) {
        writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46);
    }
}
driver.findElement(By.id(prop.getProperty(vName))).click();

Dieser Code wartet, bis das Element sichtbar ist oder ein Timeout-Wert erreicht wird. Allerdings muss der Benutzer die Wartezeit definieren, was unpraktisch sein kann.

Antwort: Nutzen Sie die expliziten Wartefunktionen von WebDriver, um zuverlässige Wartezeiten auf das Vorhandensein von Elementen sicherzustellen.

Der folgende Code demonstriert den empfohlenen Ansatz:

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));

Alternativ können Sie dies tun Verwendung:

wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));

Diese Methoden bieten eine detaillierte Kontrolle über Wartebedingungen und machen eine benutzerdefinierte Schlaflogik überflüssig.

Zusätzlich Ressourcen:

  • [ExpectedConditions](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/ExpectedCondit ions.html)
  • [WebDriverWait](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/WebDriverWait.html)

Das obige ist der detaillierte Inhalt vonWie kann ich vor dem Klicken zuverlässig auf die Sichtbarkeit von Elementen in WebDriver warten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn