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.
