page-object使用(1)

创建你的page

你必须做的第一件事情是创建你的page,这是一些包含了PageObject模块的简单的ruby类,请不要创建你自己的initialize方法,因为已经有一个存在而且不能被覆盖。如果你确实需要page的页面初始化方法,你可以执行一个initialize_page回调方法,它将会在page被创建同时所有的动态方法都生成以后调用。

class RegistrationPage
  include PageObject
end

通过include pageobject这个模块,你已经为你的page增加了大量的功能。让我们看一下该怎么用它

描述你的page

在你创建了你需要描述的类以后,RegistrationPage这个例子就可以这么用:

1 class RegistrationPage
2   include PageObject
3 
4   text_field(:name, :id => 'name')
5   text_field(:email, :id => 'email')
6   button(:register, :value => 'Register')
7 end

通过调用这些方法,pageobject模块将会为你增加额外的方法,增加详细的方法等看page-object(element)

使用你的page

现在我们有了一个基础的定义的page-object,你可以用watir-webdriver或者selenium-webdriver作为驱动。只需要将他们传递到方法中。

1 browser = Watir::Browser.new :firefox
2 registration_page = RegistrationPage.new(browser)

或者

browser = Selenium::WebDriver.for :firefox
registration_page = RegistrationPage.new(browser)

创建以后你可以用一下的方法操作page

1 registration_page.name = 'Test User'
2 registration_page.email = 'test@example.com'
3 registration_page.register

这些就是这个gem包的使用方法。

 

原文地址:https://www.cnblogs.com/hyzs25/p/3178382.html