Ah that's very negligible! I believe I can add that in my current project.

On Tue 7 Aug, 2018, 11:11 PM Justin Ko, <[email protected]> wrote:

> I agree that adding it to the after hooks adds overhead. Though at 0.015s
> per click, it's not the worst thing in the world.
>
> I worked on one application where almost every button/link click triggered
> a loading overlay. Creating a method for each button/link to add the wait
> would defeat the purpose of using the Page Object gem. As with anything,
> the "better way" really depends on the application you're testing.
>
> Justin
>
>
> On Tuesday, August 7, 2018 at 1:00:37 PM UTC-4, [email protected]
> wrote:
>>
>> Okay, I will be waiting for that then! There was a new project in my
>> company for which I convinced them to use WATIR instead of Selenium where I
>> had to implement this waiting behavior! Okay excited to see this new
>> feature to be added!   Thanks.
>>
>> On Tuesday, August 7, 2018 at 10:24:55 PM UTC+5:30, Titus Fortner wrote:
>>>
>>> you'll be able to specify the exact desired behaviours in a more
>>> granular way
>>>
>>> On Tue, Aug 7, 2018, 9:53 AM <[email protected]> wrote:
>>>
>>>> Oh okay. But you said
>>>>
>>>> The Executor class when implemented will open up a lot more flexibility.
>>>>
>>>>
>>>> So will it be lesser wire call after Executor class implemented? Can I
>>>> add after that?
>>>>
>>>> On Tuesday, August 7, 2018 at 10:18:51 PM UTC+5:30, Titus Fortner wrote:
>>>>>
>>>>> No, your way is better if it is working for you. Adding it to the
>>>>> after hook will add a ton more unnecessary calls to your code.
>>>>>
>>>>>
>>>>> On Tue, Aug 7, 2018 at 9:38 AM <[email protected]> wrote:
>>>>>
>>>>>> 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]> 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.
>>>>>>
>>>>> --
>>>> --
>>>> 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