watir-webdriver wait for page load

丶灬走出姿态 提交于 2019-12-02 19:15:48
marc

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

jarib

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

genegc

The best summary is found here: http://watir.com/guides/waiting/

Here it is in a nutshell:

require 'watir-webdriver'
b = Watir::Browser.start 'bit.ly/watir-webdriver-demo'
b.select_list(:id => 'entry_1').wait_until_present
b.text_field(:id => 'entry_0').when_present.set 'your name'
b.button(:value => 'Submit').click
b.button(:value => 'Submit').wait_while_present
Watir::Wait.until { b.text.include? 'Thank you' }

browser.wait_until method can be used its more helpful you can define what to wait for in () as browser.wait_until(browser.text.include("some text"))

This is how I wait for AJAX in my project...

ajax_loader = $b.element(:xpath  => "//*[@id='spinner-modal-transparent' and @aria-hidden='true']/div/div/div/div/img[@alt='Ajax transparent loader']")

if ajax_loader.exists?
  ajax_loader.wait_while_present(timeout=350)
else
  puts "The AJAX loader was not present."
end

you can use wait_until....

or

waituntilExists methods

I meet the same problems with you, and I try to fix it by combing wait_until_present method and the until browser.div(:id=>"some_div").exists? do sleep 1 end tricks povided by @marc:

some_div = browser.div(:id => 'some_div')

begin 

  Watir::Wait.until
    some_div.visible?
  end

rescue Watir::Wait::TimeoutError

  until some_div.visible?
    sleep 1
  end
end

And be noticed that it is your own responsibility to make sure that the div(:id => "some_div") do exist

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!