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