Ruby watir 页面对象实现

Ruby watir page object implementation

尝试将带有 webelement 的变量添加到方法中,然后将此方法与 .click

一起使用
def login_button
@browser.element(:class => /button radius button-demo/)
  end

login_button.click 

但是,不断出现同样的错误:

undefined local variable or method `login_button' for PageObjects:Class (NameError)

但是如果你这样做:

 @browser.element(:class => /button radius button-demo/).click

不将其添加到方法中,一切正常。

Watir 官方指南提供了向方法添加变量的选项,但由于某些原因我无法使其工作:(

这是使用廉价页面对象的简单代码片段。

require 'page-object'
class Login_Page
   include PageObject
   text_field(:user_name, css: "[name='username']")
   text_field(:password, css: "[name='password']")
   button(:sign_in, css: "button[type='submit']")

   def click_on_sign_in
       sign_in # default method is click for button element
       # if you want to call click method
       sign_in.wait_until(100, &:present?).click
       # clicking using fire event
       sign_in.wait_until(100, &:present?).fire_event :onclick
   end
end

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