Selenium WebDriver utilities.
Features
- hook interface to selenium-webdriver
- utilities for test (not yet)
- session management
- implicit and explicit wait
- retry
Installation
Add this line to your application's Gemfile:
gem 'selenium-more'
And then execute:
$ bundle
Or install it yourself as:
$ gem install selenium-more
Usage
Hooks
When you include ::Selenium::More::Hooks to ::Selenium::WebDriver::Driver, you can add before/after hook to any existing driver function.
Sample Code:
require "selenium/more/hooks"
class Selenium::WebDriver::Driver
include Selenium::More::Hooks
hook :get, before: ->(driver, url) { puts driver.current_url }
after: ->(driver, ret, url) { puts driver.current_url }
end
driver = Selenium::WebDriver.for :phantomjs
drvier.get "http://example.com/"
It prints.
about:blank
http://example.com/
You can also add hook to each instance of ::Selenium::WebDriver::Driver. It results the same with above.
require "selenium/more/hooks"
class Selenium::WebDriver::Driver
include Selenium::More::Hooks
end
driver = Selenium::WebDriver.for :phantomjs
driver.hook :get, before: ->(driver, url) { puts driver.current_url }
after: ->(driver, ret, url) { puts driver.current_url }
driver.get "http://example.com/"
Many build-in hooks are available. See examples or lib/selenium/more/hooks directory.
Saving Movie
Seleinium::More::Hooks::Movie
enables to save whole driver's activity as a movie.
It has capability to switch the way to make movie, but currently only imagemagick is available.
See examples/movie.rb
session management
T.B.D.
Implicit and Explicit wait
T.B.D.
retry
T.B.D.
Development
java is needed to run selenium-server-standalone
Contributing
- Fork it ( http://github.com//selenium-more/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