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。
尝试将带有 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。