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.
