Skip to content
Titus edited this page Jan 27, 2018 · 5 revisions

The most basic components of a Watir Drops page object involves only 3 things:

  1. Inherit from PageObject
class LoginPage < WatirDrops::PageObject

end
  1. Define Elements:
  element(:username) { browser.text_field(label: 'Username')} 
  element(:password) { browser.text_field(label: 'Password')} 
  element(:submit_login) { browser.button(text: 'Login')} 
  1. Create Action Methods:
  def login(user_model)
    self.username = user_model.username
    self.password = user_model.password
    submit_login.click
  end

Access this in your test code like this (RSpec example):

describe "Login Page" do
  it 'can log in' do
    browser = Watir::Browser.new
    WatirDrops::PageObject.browser = browser
    browser.goto "http://example.com/login"
    login_page = LoginPage.new
    login_page.login(username: 'Jonny',
                     password: 'Appleseed')
    expect(login_page.submit_login).to_not be_present
  end
end
Clone this wiki locally