Skip to content

Instantly share code, notes, and snippets.

@andreyuhai
Created August 15, 2020 09:48
Show Gist options
  • Save andreyuhai/1b60a746e724991c01aacc03d35f211e to your computer and use it in GitHub Desktop.
Save andreyuhai/1b60a746e724991c01aacc03d35f211e to your computer and use it in GitHub Desktop.
How to register a driver and instantiate using Capybara
require 'capybara'
require 'selenium-webdriver'

Capybara.register_driver :selenium_w_proxy do |app|
  proxy = Selenium::WebDriver::Proxy.new(http: 'host:port', ssl: 'host:port')
  desired_caps = Selenium::WebDriver::Remote::Capabilities.firefox
  options = Selenium::WebDriver::Firefox::Options.new
  options.add_argument('--headless') # To make the browser headless
  options.add_preference('browser.download.dir', "/some/path/to/folder/") # Custom downloads directory
  options.add_preference('browser.download.folderList', 2)
  options.add_preference('browser.helperApps.alwaysAsk.force', false)
  options.add_preference('browser.download.manager.showWhenStarting', false)
  options.add_preference('browser.helperApps.neverAsk.saveToDisk', "audio/mpeg3") # File MIME type
  options.add_preference('csvjs.disabled', true)
  Capybara::Selenium::Driver.new(app, {
    browser: :firefox,
    desired_capabilities: desired_caps,
    options: options
  })
end

browser = Capybara::Session.new(:selenium_w_proxy)
browser.visit 'https://google.com'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment