Référence d'élément obsolète : identification de la source de l'exception
Rencontrer l'exception "référence d'élément obsolète" lors de l'exécution de tests WebDriver peut être frustrant. Examinons les détails de l'erreur et explorons une solution pour résoudre ce problème.
Présentation de l'erreur
L'exception de « référence d'élément obsolète » se produit lorsque WebDriver tente de interagir avec un élément qui ne fait plus partie du DOM. Cela peut se produire pour diverses raisons, telles que :
Exemple de code
L'extrait de code fourni présente un scénario dans lequel cette erreur pourrait se produire :
<code class="java">public static void main(String[] args) throws InterruptedException { // ... List<WebElement> LeftNavLinks = driver.findElements(By.xpath("//*[@id='sliding-navigation']//a")); for (WebElement e : LeftNavLinks) { if(e.getText().equals("Benefit Status")) { driver.findElement(By.xpath(String.format("//*[@id='sliding-navigation']/li[%s]/a", i))).click(); driver.findElement(By.xpath("//* [@id='divContentHolder']/div[1]/a[1]")).click(); } i++; } }</code>
Raison de l'exception
Sur la base de la structure HTML fournie, l'erreur se produit probablement lorsque vous essayez de cliquer sur l'élément avec le XPath //*[@id='divContentHolder']/div[1]/ une[1]. Cela peut être dû au fait que l'élément a été supprimé ou modifié après la navigation initiale et la récupération de l'élément.
Solution
Pour résoudre ce problème, vous pouvez implémenter un mécanisme pour gérer le exception de référence d’élément obsolète. Une approche consiste à intercepter l'exception et à réessayer l'action, comme le montre l'extrait de code suivant :
<code class="java">try { driver.findElement(By.xpath("//*[@id='divContentHolder']/div[1]/a[1]")).click(); } catch (org.openqa.selenium.StaleElementReferenceException ex) { // Retry the action here driver.findElement(By.xpath("//*[@id='divContentHolder']/div[1]/a[1]")).click(); }</code>
Notes supplémentaires
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!