L'exception de référence d'élément obsolète de Selenium WebDriver se produit lorsque l'élément avec lequel vous essayez d'interagir est supprimé et recréé dynamiquement. Ceci est courant dans les applications Web complexes où les éléments sont constamment modifiés.
Comprendre l'actualisation des éléments
Un WebElement représente un élément dans le DOM. Une StaleElementException est déclenchée lorsque l'élément sous-jacent est détruit puis reconstruit. Cela peut se produire lors d'interactions utilisateur qui nécessitent une manipulation du DOM, ce qui conduit à ce que le WebElement d'origine devienne « obsolète ».
Bonnes pratiques pour résoudre les références d'éléments obsolètes
Pour éviter cette exception , vous devez actualiser votre référence à l'élément. Voici quelques pratiques recommandées :
Exemple
Considérez le code que vous fourni :
WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver driver) { WebElement button = driver.findElement(By.name("createForm:dateInput_input")); if (button.isDisplayed()) return true; else return false; } });
Pour résoudre ce problème, vous pouvez soit utiliser un localisateur dynamique au lieu de By.name(), soit implémenter une gestion appropriée des exceptions pour actualiser l'élément lorsque vous rencontrez l'exception de référence d'élément obsolète.
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!