LitePage
A gem providing a quick, clean, and concise means of implementing the Page Object Model pattern and defining a semantic DSL for automated acceptance tests using watir-webdriver.
Installation
Add this line to your application's Gemfile:
gem 'lite_page'
And then execute:
$ bundle
Or install it yourself as:
$ gem install lite_page
Documentation
You can find comprehensive documentation in the wiki
Example Usage
If using cucumber, include LitePage::PageInitializers
in the World
instance
World(LitePage::PageInitializers)
Define a page object:
class LoginPage
include LitePage
page_url('http://www.example.com/login')
def_elements(:@browser, {
:username_field => [:text_field, :id => 'username'],
:password_field => [:text_field, :id => 'password'],
:log_in_button => [:button, :value => 'Log In']
})
def log_in(username, password)
self.username_field.set(username)
self.password_field.set(password)
self.log_in_button.click
end
end
Interact with the page:
visit(LoginPage).log_in('afinch', 'mockingbird60')
Contributing
- Fork it ( http://github.com/saclark/lite_page/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request