Using watir-webdriver, how do i wait for a page to load after i click a link?
At the moment i am doing:
sleep n
But this is not ideal as the page response varies so much.
Is there a method to test whether the page is ready or whether there is a certain element in the page. I understand in the normal watir gem there is Watir::Waiter.wait_until
or something similar, but I cannot see this in the webdriver version.
you can use wait_until....
or
waituntilExists methods
Today's release adds an optional require that brings in some helpers for waiting for elements. These are not (at the moment) available in Watir 1.6, so be aware if you use both libraries side by side.
Check the the page on AJAX and waiting for elements in the Watir-webdriver Wiki
I don't know if they're the best way, but this is how I'm handling this for waiting for updating div to clear:
while browser.div(:id=>"updating_div").visible? do sleep 1 end
This is how I handle waiting for something to display:
until browser.div(:id=>"some_div").exists? do sleep 1 end
I meet the same problems with you, and I try to fix it by combing
wait_until_present
method and theuntil browser.div(:id=>"some_div").exists? do sleep 1 end
tricks povided by @marc:And be noticed that it is your own responsibility to make sure that the
div(:id => "some_div")
do existThe best summary is found here: http://watir.com/guides/waiting/
Here it is in a nutshell:
browser.wait_until
method can be used its more helpful you can define what to wait for in()
asbrowser.wait_until(browser.text.include("some text"))