Hi Justin, We are also using this wait_for_ajax in one of our Project. You said
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. > May I know how to do this? On Tuesday, August 7, 2018 at 9:37:42 PM UTC+5:30, Justin Ko wrote: > > The #wait_for_ajax simplifies things if you need to manually call it. > However, it sounds like you would have to sprinkle this everywhere. > > > > 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 <[email protected]> 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. >> > >> > [email protected] >> > http://groups.google.com/group/watir-general >> > [email protected] >> > --- >> > 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 [email protected]. >> > 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. [email protected] http://groups.google.com/group/watir-general [email protected] --- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
