Created: 2012-03-26 17:36
Updated: 2013-12-22 02:21
License: bsd-2-clause




WebPilot is a wrapper for Selenium::WebDriver that makes the library more ruby-esque. Rather than inherit from Selenium::WebDriver, an instance of WebPilot has a Selenium::WebDriver instance as an attribute. It serves other functions rather than just extending Selenium::WebDriver, so it also wraps a Logger, saves screenshots, etc.


WebPilot is tested on the following platforms:

  • ruby-1.9.3 on Linux

That is all.


  • Way More Tests :P
  • screenshot functionality
  • All of the Approximations from KaikiFS...


gem install webpilot


Please do! Contributing is easy. Please read the CONTRIBUTING.md document for more info. ... When it exists.


WebPilot is meant to be used primarily as a helper for using Selenium with Cucumber, so that your step definitions are as short as possible, and never have to rescue from a Selenium exception.

require 'webpilot'
pilot = WebPilot.new(options)

WebPilot.new options

  • :browser should be one of the browsers supported by WebDriver.for
  • :is_headless should be a boolean, indicating whether to use Selenium::WebDriver should run under a headless X display, using the headless gem.
  • :logger can be one of several things:
    • nil will instantiate a logger that writes to /dev/null
    • "STDOUT" will instantiate a logger to STDOUT
    • "STDERR" will instantiate a logger to STDERR
    • an object that appears to be a Logger will then be assigned to @logger, not instantiating anything new
  • :pause_time should be a Numeric (Fixnum or Float), representing the number of seconds that a call to #pause will pause for.
  • :screenshot_dir is... not quite used yet. Stay tuned!
  • :timeout is the default number of seconds that a Wait object should wait for.


WebPilot follows Semantic Versioning (at least approximately) version 2.0.0-rc1.


Please see LICENSE.md.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more