I get this error when running my tests: org.openqa.selenium.StaleElementReferenceException: Element is no longer attached to the DOM
any idea on how to solve the above exception? this happen in my grid which has a ref Xpath expression which is dynamic
What is StaleElementReferenceException in Selenium Webdriver. Stale means old, decayed, no longer fresh. Stale Element means an old element or no longer available element. Assume there is an element that is found on a web page referenced as a WebElement in WebDriver. If the DOM changes then the WebElement goes stale.
A stale element reference exception is thrown in one of two cases, the first being more common than the second: The element has been deleted entirely. The element is no longer attached to the DOM.
The stale element reference error is a WebDriver error that occurs because the referenced web element is no longer attached to the DOM. Every DOM element is represented in WebDriver by a unique identifying reference, known as a web element.
We can close the pop up window with Selenium. The getWindowHandles and getWindowHandle methods are used for the pop up window. To store all the window handles opened in a Set data structure, the getWindowHandles method is used. To store the window handle of the pop up in focus, the getWindowHandle method is used.
I ran across this same problem and could not find any solutions. Came up with a solution and posting it here, hope this helps someone with the same problem. I created a class to handle stale elements depending on their type, cssselector, id, etc and simply call it like I would any other page object.
public void StaleElementHandleByID (String elementID) { int count = 0; boolean clicked = false; while (count < 4 && !clicked) { try { WebElement yourSlipperyElement= driver.findElement(By.id(elementID)); yourSlipperyElement.click(); clicked = true; } catch (StaleElementReferenceException e) { e.toString(); System.out.println("Trying to recover from a stale element :" + e.getMessage()); count = count+1; } } }
I'd recommend only using this on elements you know cause problems for WebDriver.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With