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.