Maison > Java > javaDidacticiel > Comment attendre de manière fiable la visibilité des éléments dans WebDriver avant de cliquer ?

Comment attendre de manière fiable la visibilité des éléments dans WebDriver avant de cliquer ?

Mary-Kate Olsen
Libérer: 2024-11-27 05:58:10
original
385 Les gens l'ont consulté

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

WebDriver : En attente de la présence d'un élément

Question : Comment puis-je attendre de manière fiable qu'un élément devienne visible avant en cliquant dessus ? Les attentes implicites seules semblent incohérentes.

Pour résoudre ce problème, des attentes implicites peuvent être utilisées. Cependant, une solution plus fiable est :

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();
Copier après la connexion

Ce code attend que l'élément soit visible ou qu'une valeur de délai d'attente soit atteinte. Cependant, cela oblige l'utilisateur à définir le temps d'attente, ce qui peut être gênant.

Réponse : Utilisez les capacités d'attente explicites de WebDriver pour garantir des attentes fiables pour la présence d'un élément.

Le code suivant illustre l'approche recommandée :

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
Copier après la connexion

Vous pouvez également utilisation :

wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));
Copier après la connexion

Ces méthodes fournissent un contrôle précis des conditions d'attente, éliminant ainsi le besoin d'une logique de veille personnalisée.

Supplémentaire Ressources :

  • [Conditions attendues](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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal