Hi there,
TLDR: Is there a way to call this.refresh() or something from within a geb module itself to re-instantiate it the module when its reference is stale?
I have a dynamic web element on my page. A geb module is made for this web element, based on a class name.
Single clicking selects the element (gets class 'selected' added to it in DOM)
When it's selected, and you doubleclick on this element, it 'opens'/unfolds.
In reality, whenever the element is selected, or opened, they disappear for a split-second from the page, then reappear.
So, I see it as the same module, but the geb module is now a stale reference whenever it's selected or opened.
In my test, the way to deal with this, is to first select (click) on the element matching my identifiers, wait a bit, then search for it again and doubleclick it.
But I wish to hide all this from the test itself, that's what geb is for right?
If I wish to abstract this and just have a custom method 'open()' in this geb module that:
- if element is not selected (it has classname: 'selected'): then click it. wait a bit
- then if it's selected, double click it
Then in between I need to 'refresh' it, search for the element again. But I don't want to have to do this behaviour from
I see two options
1) Use some sort of this.refresh() command (does it exist?)
2) Move this method to the page object, and re-'instantiate' the geb module from there inbetween.
Any advice?