Hi Titus

Let me explain in deatils

We define the selector in the code as
div(class: "here")



Dynamic action changed the class to 
"not-here"

in the DOM but but the the selector still remains the same in code
.(div(class: "here"))



Due to this reason 
element.wait_while(&:present?)

,will timeout as Watir just keeps verifying that the cached element is 
still there using the selector defined in code which is again
 (div(class: "here"))


As a solution we use 
element.wait_while_present 

which looks up the element from scratch.. But the class of the element in 
DOM is still
 "not_here" 

and the selector in code is
 "here"


So element.wait_while_present is never going to locate the element as the 
class has changed to
 "not-here" 

in DOM.

But if in the DOM the class has changed back to 
"here"

from 
"not-here"

then
 wait_while_present

will locate it.

I hope you see where the confusion is. We never talks about the dynamic 
action which changes the class back to "here"


On Tuesday, 11 September 2018 14:52:33 UTC+10, NaviHan wrote:

> This is something that keeps me a bit sceptic when I write and read the 
> automation code in my project.
> This used PageObjects.
>
> I have seen extensive use of element referces, for example 
>
> button(:add_to_bag, :css => '#add-to-cart')
> add_to_bag.element.when_present.click
>
>
>
> instead of 
>
> add_to_bag 
>
> which directly clicks the element
>
> I have also seen extensive use of referencing elements using 
> <element>.when_present, <element>.wait_until_present etc
>
> Im confused where we should draw the line when deciding to reference the 
> element and actually using it(as in directly calling "add_o_bag" in the above 
> example to click the element.
>
> Any thoughts?
>
>
>

-- 
-- 
Before posting, please read 
https://github.com/watir/watir_meta/wiki/Guidelines-for-Posting-to-Watir-General-Google-Group.
 
In short: search before you ask, be nice.

watir-general@googlegroups.com
http://groups.google.com/group/watir-general
watir-general+unsubscr...@googlegroups.com
--- 
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to watir-general+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to