That will be interesting, I am using as shown below,
>
> def selectAndWait(locator, value)
> select locator, value
> waitForPageLoad
> end
>
> def waitForPageLoad
> @b.wait_until(timeout: @Page_Load) {@b.execute_script("return
> (jQuery.active === 0)").eql? true}
> end
>
>
Let me try using this `after_hook`, a very interesting idea indeed.
On Tuesday, August 7, 2018 at 9:59:47 PM UTC+5:30, Titus Fortner wrote:
>
> 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] <javascript:>> 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] <javascript:>
>> http://groups.google.com/group/watir-general
>> [email protected] <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 [email protected] <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.
[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.