Search code examples
javaseleniumgwtselenide

Selenide ElementsCollection throwing StaleElementException


I've started using Selenide recently, and I'm loving the fluent code it allows. I do have strange issue with ElementsCollection, however.

$$("some ref").filterBy(not(attribute("an-attr-that-should-not-be"))).getTexts()

This query intermittently returns stringified StaleElementReferenceExceptions, and I can't understand why.

If I run the query in the debugger, it returns valid values, while during normal runtime (single thread application), this is what I get.

The target element is a GWT combo box results list.

Could someone please point me in the right direction?

Update: if it's relevant, I'm using InternetExplorerDriver.


Solution

  • Found the problem. Apparently, the Selenide ElementsCollection cached a previous version of the element list, which updated a lot slower than anticipated, and was trying to access this ghost data when retrieving texts.

    Fixed by using $$ where the list is iterated, instead of the usual static constants in class header.