This is the alert click here: https://gist.github.com/Rajagopalan-M/ba78aed6342c61d07968cfe195d3f4de#file-gistfile1-txt-L2732
On Tuesday, November 6, 2018 at 12:20:07 PM UTC-6, rajagopalan madasami wrote: > > I am not clicking any alert before the button. And also Let me check your > solution first and if it works fine then I raise the defect. So now I need > to wait for spinner to disappear before and after the click. Okay. > > On Tue 6 Nov, 2018, 11:46 PM Titus Fortner <[email protected] > <javascript:> wrote: > >> I posted it above: >> @b.alert.ok >> @b.div(id: "spinnerOverlay").wait_while(&:present?) >> @b.button(id: "NavContinue").click >> >> But we can make this better in the Watir code which is why I asked if you >> could also raise the issue on Github. >> >> >> >> On Tuesday, November 6, 2018 at 12:12:32 PM UTC-6, rajagopalan madasami >> wrote: >>> >>> Okay. Can you please tell me what order should I need to write the code? >>> >>> And I have a question, If element goes stale then WATIR automatically >>> regains the element , right ? It regain in many places which I see. >>> >>> On Tue 6 Nov, 2018, 11:39 PM Titus Fortner <[email protected] wrote: >>> >>>> It's failing because it goes stale. It goes stale because there is a >>>> refresh on the page, the refresh on the page happens after the spinner >>>> that >>>> the alert kicks off. The problem is that the element is located before the >>>> spinner, and for it to work right now, you have to wait until after the >>>> spinner to locate the element. However you organize it in the code, it >>>> needs to be in that order not the order you have. >>>> >>>> >>>> >>>> On Tuesday, November 6, 2018 at 11:37:01 AM UTC-6, rajagopalan madasami >>>> wrote: >>>>> >>>>> I am calling this function >>>>> >>>>> def waitForPageLoad >>>>> >>>>> @b.wait_until(timeout: @Page_Load) {@b.execute_script("return >>>>> (jQuery.active === 0)").eql? true} >>>>> end >>>>> >>>>> function in every click function like >>>>> >>>>> def clickButton(locator, action, name, data) >>>>> puts "ClickButton : #{name}" >>>>> loc = getLocator(locator) >>>>> @b.button(loc.first => loc.last).click >>>>> waitForPageLoad >>>>> end >>>>> >>>>> Do you see the clickButton method >>>>> >>>>> calls waitForPageLoad at the end so it waits for the spinner disappear. >>>>> So it doesn't click on the spinner. Even if it clicks at the >>>>> >>>>> spinner it retry it because I have included >>>>> Selenium::WebDriver::Error::ElementClickInterceptedError >>>>> >>>>> rescue Selenium::WebDriver::Error::ElementNotVisibleError, >>>>> Selenium::WebDriver::Error::ElementNotInteractableError,Selenium::WebDriver::Error::ElementClickInterceptedError >>>>> raise_present unless Wait.timer.remaining_time.positive? >>>>> raise_present unless %i[wait_for_present wait_for_enabled >>>>> wait_for_writable].include?(precondition) >>>>> retry >>>>> >>>>> So all I am seeing here is, It perfectlys lands on a page, and it >>>>> successfully enters into the click method but it waits for 30 seconds and >>>>> it fails. >>>>> >>>>> >>>>> >>>>> >>>>> On Tue, 6 Nov 2018 at 22:51, Titus Fortner <[email protected]> >>>>> wrote: >>>>> >>>>>> Yes, this makes sense from the code perspective. >>>>>> >>>>>> What your site is doing is requiring you to accept an alert, then it >>>>>> does some kind of processing, then it refreshes some/all of the page. >>>>>> >>>>>> Your code is trying to click the element before the refresh has >>>>>> happened, and because of the way you are rescuing it, it is giving you >>>>>> misleading information. The element was located but couldn't be used, >>>>>> then at the point it is trying to be used it is stale, and that method >>>>>> isn't relocating when stale. >>>>>> >>>>>> Can you raise an issue on Github with this gist? Something like "Watir >>>>>> should relocate stale elements when trying to click them" >>>>>> >>>>>> In the meantime, something like this should work: >>>>>> >>>>>> @b.alert.ok >>>>>> @b.div(id: "spinnerOverlay").wait_while(&:present?) >>>>>> @b.button(id: "NavContinue").click >>>>>> >>>>>> >>>>>> On Tue, Nov 6, 2018 at 10:56 AM <[email protected]> wrote: >>>>>> > >>>>>> > Hi Titus, >>>>>> > >>>>>> > Here is the gist url >>>>>> > >>>>>> > >>>>>> https://gist.github.com/Rajagopalan-M/ba78aed6342c61d07968cfe195d3f4de >>>>>> > >>>>>> > -- >>>>>> > -- >>>>>> > 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] <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.
