使用Ruby等待页面加载元素

时间:2013-09-26 15:10:21

标签: ruby watir wait watir-webdriver

我目前有一块Ruby的工作原理如下:

 def error_message
    browser.span(:id => 'ctl00_cphMainContent_lblMessage').wait_until_present(30) do
      not errors.empty?
    end
    errors
  end

但是,我更喜欢这样的东西:

span(:errors, :id => 'ctl00_cphMainContent_lblMessage')


##farther down##


def error_message
   browser.errors.wait_until_present(30) do 
etc...

我是Ruby的新手,但我怎么能做这样的事情,假设它可能?

1 个答案:

答案 0 :(得分:0)

通常,您使用Watir::Wait.until<element>.wait_until_present方法。

通过这种方式,您可以执行以下操作:

# Earlier in code
@browser = Watir::Browser.start('http://mypage.com/')
# ...
errors = { my_first_error: "You forgot your keys in the car!" }

check_for_errors(error[:my_first_error])

# Wherever
def check_for_errors(error, expiry=30)
    error_element = @browser.span(:id => 'ctl00_cphMainContent_lblMessage')
    error_element(value: error).wait_until_present(expiry)
end

有关详细信息,请参阅watir documentation