Skip to content

Selenium

A variety of browsers can be automated using Selenium.

When Selenium is in use, a remote browser process is accessible within jobs like so:

Wayfarer.config[:network][:agent] = :selenium

class DummyWorker < Wayfarer::Worker
  route.to :index

  def index
    browser # => #<Selenium::WebDriver ...>
  end
end

Using Selenium requires running a driver process.

Fake response header and status code

Selenium does not provide response headers or status code.

Pages retrieved with a Selenium WebDriver return fake values:

Wayfarer.config[:network][:agent] = :selenium

class DummyJob < Wayfarer::Base
  route.to :index

  def index
    page.headers     # => always {}
    page.status_code # => always 200
  end
end

Consider using Ferrum instead if Google Chrome suits your needs.

Use Ferrum if you want to automate Google Chrome. It provides superior stability and a richer feature set compared to Selenium drivers.

Configuring Selenium

Wayfarer.config[:network][:agent] = :selenium
Wayfarer.config[:selenium][:driver] = :firefox
Wayfarer.config[:selenium][:options] = { url: "http://firefox" }
WAYFARER_AGENT=selenium
WAYFARER_SELENIUM_DRIVER=firefox
WAYFARER_SELENIUM_OPTIONS=url:http://firefox