0

我目前有一块看起来像这样的 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 的新手,但是如果可能的话,我怎么能做这样的事情呢?

4

1 回答 1

0

通常,您使用Watir::Wait.untilor<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 文档

于 2013-09-26T15:16:24.617 回答