The #wait_for_ajax simplifies things if you need to manually call it. 
However, it sounds like you would have to sprinkle this everywhere.

I would suggest adding the jQuery.active check to your browser's 
after_hooks. Ideally this would catch all (or at least most) of the 
problems.

Note that there would be a small performance hit of making this check after 
each click/goto. However, if it's an AJAX heavy application, it's probably 
worth it.

Justin


On Tuesday, August 7, 2018 at 11:36:54 AM UTC-4, Titus Fortner wrote:
>
> Found it 
>
> See the section on Waiting for AJAX Calls here: 
> http://cheezyworld.com/2012/02/23/page-object-0-6-2-released/ 
> let's you call `wait_for_ajax` where you want it. 
>
>
> On Tue, Aug 7, 2018 at 7:43 AM NaviHan <hishin...@gmail.com <javascript:>> 
> wrote: 
> > 
> > Yes Justin, That was exactly what happened. I ran the script a few times 
> and using "Watir::Wait.until(timeout: 30) {@browser.execute_script('return 
> jQuery.active == 0')}" never gave me the error " 
> > 
> > Element <span class="swatchanchor-value">...</span> is not clickable at 
> point (537, 362). Other element would receive the click: <div 
> class="loader-bg"></div>" 
> > 
> > 
> > The code is 
> > 
> > def select_online_size (size) 
> >   Watir::Wait.until(timeout: 30) {@browser.execute_script('return 
> jQuery.active == 0')} 
> >   sizes_online_elements.find {|el| el.when_present.text.eql? size}.click 
> > end 
> > 
> > I was expecting that the "when_present" method would not give any timing 
> issue because this waits until the element is present. Somehow this 
> evaulates to true at the same time the spinner which is loading while the 
> Ajax is running receives the click. 
> > 
> > 
> > Is there a PO way to resolve this , I mean without having to use the 
> "jQuery" statement 
> > 
> > 
> > Cheers 
> > 
> > Navi 
> > 
> > On Friday, 3 August 2018 15:12:45 UTC+10, NaviHan wrote: 
> >> 
> >> I have a functionality where I click an a link from an email a voucher 
> gets added to the shopping cart and a pop up appears with a message. Im 
> trying to assert the text in the popup 
> >> I have defined the element as 
> >> 
> >> div(:cta_description, :css => '.homepage-clicktoactiavte-description') 
> >> 
> >> Tried to use a mix of Watir and Pageobejct to read the text. The below 
> code works 5 out of 10 times. 
> >> 
> >> @rewards_popup_txt = Watir::Wait.until{cta_description_element}.text 
> >> @rewards_popup_txt = @rewards_popup_txt.gsub(/[^$,.A-Za-z0-9]/," ") 
> >> return @rewards_popup_txt 
> >> 
> >> 
> >> Tried using, which doesnt even set the @reward_popup_txt and shows 
> error 
> >> 
> >> 
> >> if (Watir::Wait.while {cta_description_element.visible?}) 
> >>   @rewards_popup_txt = cta_description_element.text 
> >> end 
> >> @rewards_popup_txt = @rewards_popup_txt.gsub(/[^$,.A-Za-z0-9]/," ") 
> >> return @rewards_popup_txt 
> >> 
> >> Error 
> >> NoMethodError: undefined method `gsub' for nil:NilClass 
> >> ./features/support/pages/Frontend/Cotton_On/Loyalty_Page.rb:22:in 
> `rewards_popup_description' 
> >> 
> >> Any stable way to do the job? 
> > 
> > -- 
> > -- 
> > 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-...@googlegroups.com <javascript:> 
> > http://groups.google.com/group/watir-general 
> > watir-genera...@googlegroups.com <javascript:> 
> > --- 
> > 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-genera...@googlegroups.com <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
-- 
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