I have already read this thread , thank you.

On Tue 7 Aug, 2018, 11:44 PM Titus Fortner, <[email protected]> wrote:

> The poc code for Watir::Executor has been sitting in the PRs for a year:
> https://github.com/watir/watir/pull/587
>
> I was going to wait until Watir 7 to release it, but I don't think there
> is anything backward-compatibility breaking in it, so I don't think I
> should technically need to wait for that.
>
>
>
>
> On Tue, Aug 7, 2018 at 10:58 AM rajagopalan madasami <
> [email protected]> wrote:
>
>> I have created a framework where I specifically asked them to use click
>> and clickAndWait separately , click will simply performs the WATIR click,
>> clickAndWait will perform the WATIR click and call the function waitForLoad
>> as you have seen. So if such a hook is available that would be easy for me.
>>
>> On Tue 7 Aug, 2018, 11:24 PM Titus Fortner, <[email protected]>
>> wrote:
>>
>>> It's more than that when running remotely, though. Definitely use it if
>>> it makes sense regardless of local or remote, but if you've solved your
>>> issue by just wrapping the select method, that's targeted and "better." :)
>>>
>>>
>>>
>>> On Tuesday, August 7, 2018 at 10:41:36 AM UTC-7, Justin Ko 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.
>>
> --
> --
> 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