after any action that changes or is likely to change the dom, so it can get
heavy if overused. The Executor class when implemented will open up a lot
more flexibility.




On Tue, Aug 7, 2018, 9:27 AM <[email protected]> wrote:

> Ah! that's pretty interesting, I was not knowing this. So you say Once I
> have written this code, this code will be executed after every click I do?
>
> On Tuesday, August 7, 2018 at 9:54:17 PM UTC+5:30, Titus Fortner wrote:
>>
>> jquery_wait = lambda { |br| br.wait_until { |b| b.execute_script('return
>> jQuery.active == 0') } } browser.after_hooks.add(jquery_wait)
>>
>> On Tuesday, August 7, 2018 at 9:17:32 AM UTC-7, [email protected]
>> wrote:
>>>
>>> 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.
>

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

Reply via email to