DVLA::Browser::Drivers
DVLA-Browser-Drivers is a gem that has pre-configured browser drivers that you can use out-of-the-box for the development of your application.
Installation
Add this line to your application's Gemfile:
gem 'dvla-browser-drivers'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install dvla-browser-drivers
Usage
Once installed, you are able to use any pre-configured browser driver from the list below:
Selenium drivers
| Driver | Usage |
|---|---|
| selenium_chrome | DVLA::Browser::Drivers.selenium_chrome |
| headless_selenium_chrome | DVLA::Browser::Drivers.headless_selenium_chrome |
| selenium_firefox | DVLA::Browser::Drivers.selenium_firefox |
| headless_selenium_firefox | DVLA::Browser::Drivers.headless_selenium_firefox |
| selenium_edge | DVLA::Browser::Drivers.selenium_edge |
| selenium_safari | DVLA::Browser::Drivers.selenium_safari |
Non-selenium drivers
| Driver | Usage |
|---|---|
| cuprite | DVLA::Browser::Drivers.cuprite |
| headless_cuprite | DVLA::Browser::Drivers.headless_cuprite |
| apparition | DVLA::Browser::Drivers.apparition |
| headless_apparition | DVLA::Browser::Drivers.headless_apparition |
Note: Safari and Edge do not support headless mode.
Default configuration
| Driver | Configuration |
|---|---|
| selenium_chrome, selenium_edge, selenium_firefox | --disable-dev-shm-usage |
| headless_ |
--headless --no-sandbox |
| cuprite, apparition | { 'no-sandbox': nil, disable-smooth-scrolling: true } |
Additional configuration
Cuprite Documentation Selenium Additional Preferences Documentation
| Option | Driver | Usage | Description |
|---|---|---|---|
| remote | Selenium, Cuprite, Apparition | selenium_chrome(remote: 'http://localhost:4444/wd/hub') |
Allows you to talk to a remote browser |
| additional_arguments | Selenium | selenium_chrome(additional_arguments: ['window-size=1400,1920'] |
Pass additional arguments to the driver |
| additional_preferences | Selenium | selenium_chrome(additional_preferences: [{'download.default_directory': '<download_path>'}] ) |
Pass additional preferences to the driver |
| timeout | Cuprite, Apparition | cuprite(timeout: 60 ) |
Sets the default timeout for the driver |
| save_path | Cuprite, Apparition | cuprite(save_path: 'File.expand_path('./somewhere')' ) |
Tells the browser where to store downloads |
| browser_options | Cuprite, Apparition | cuprite(browser_options: { option: value, option: value }) |
Pass additional options to the browser |
BiDi Support
BiDi (Bidirectional Protocol) is enabled by default on all Selenium drivers (Chrome, Firefox, Edge). This allows bidirectional communication between the driver and browser. It is still in active development so breaking changes are expected. Check the documentation for the latest implementation guides:
Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can
also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the
version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version,
push git commits and the created tag, and push the .gem file to rubygems.org.