Skip to content

Instantly share code, notes, and snippets.

@antonfefilov
Forked from bbonamin/Brewfile
Created December 2, 2020 17:40
Show Gist options
  • Select an option

  • Save antonfefilov/42cc62a3dae7c5744c1a72c92e431fbe to your computer and use it in GitHub Desktop.

Select an option

Save antonfefilov/42cc62a3dae7c5744c1a72c92e431fbe to your computer and use it in GitHub Desktop.

Revisions

  1. @bbonamin bbonamin revised this gist Dec 11, 2017. 1 changed file with 27 additions and 7 deletions.
    34 changes: 27 additions & 7 deletions chrome.rb
    Original file line number Diff line number Diff line change
    @@ -1,18 +1,38 @@
    require 'capybara/rspec'
    require 'selenium/webdriver'

    options = Selenium::WebDriver::Chrome::Options.new
    options.add_preference(:download, prompt_for_download: false,
    default_directory: '/tmp/downloads')

    options.add_preference(:browser, set_download_behavior: { behavior: 'allow' })

    Capybara.register_driver :chrome do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
    Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
    end

    Capybara.register_driver :headless_chrome do |app|
    capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { args: %w(headless disable-gpu window-size=1280,800) }
    )
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    options.add_argument('--window-size=1280,800')

    driver = Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)

    ### Allow file downloads in Google Chrome when headless!!!
    ### https://bugs.chromium.org/p/chromium/issues/detail?id=696481#c89
    bridge = driver.browser.send(:bridge)

    path = '/session/:session_id/chromium/send_command'
    path[':session_id'] = bridge.session_id

    bridge.http.call(:post, path, cmd: 'Page.setDownloadBehavior',
    params: {
    behavior: 'allow',
    downloadPath: '/tmp/downloads'
    })
    ###

    Capybara::Selenium::Driver.new app,
    browser: :chrome,
    desired_capabilities: capabilities
    driver
    end

    Capybara.javascript_driver = ENV['GUI'] ? :chrome : :headless_chrome
  2. @bbonamin bbonamin revised this gist Dec 8, 2017. 3 changed files with 32 additions and 31 deletions.
    5 changes: 5 additions & 0 deletions Gemfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    source 'https://rubygems.org'

    gem 'selenium-webdriver'
    gem 'capybara'
    gem 'rspec'
    30 changes: 14 additions & 16 deletions chrome.rb
    Original file line number Diff line number Diff line change
    @@ -1,20 +1,18 @@
    require 'capybara/rspec'
    require "selenium/webdriver"
    require 'selenium/webdriver'

    RSpec.configure do |config|
    Capybara.register_driver :chrome do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
    end
    Capybara.register_driver :chrome do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
    end

    Capybara.register_driver :headless_chrome do |app|
    capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { args: %w(headless disable-gpu window-size=1280,800) }
    )
    Capybara.register_driver :headless_chrome do |app|
    capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { args: %w(headless disable-gpu window-size=1280,800) }
    )

    Capybara::Selenium::Driver.new app,
    browser: :chrome,
    desired_capabilities: capabilities
    end

    Capybara.javascript_driver = ENV['GUI'] ? :chrome : :headless_chrome
    end
    Capybara::Selenium::Driver.new app,
    browser: :chrome,
    desired_capabilities: capabilities
    end

    Capybara.javascript_driver = ENV['GUI'] ? :chrome : :headless_chrome
    28 changes: 13 additions & 15 deletions firefox.rb
    Original file line number Diff line number Diff line change
    @@ -1,19 +1,17 @@
    require 'capybara/rspec'
    require "selenium/webdriver"
    require 'selenium/webdriver'

    RSpec.configure do |config|
    Capybara.register_driver :firefox do |app|
    Capybara::Selenium::Driver.new(app, browser: :firefox)
    end
    Capybara.register_driver :firefox do |app|
    Capybara::Selenium::Driver.new(app, browser: :firefox)
    end

    Capybara.register_driver :headless_firefox do |app|
    options = Selenium::WebDriver::Firefox::Options.new
    options.headless! # added on https://github.com/SeleniumHQ/selenium/pull/4762
    Capybara.register_driver :headless_firefox do |app|
    options = Selenium::WebDriver::Firefox::Options.new
    options.headless! # added on https://github.com/SeleniumHQ/selenium/pull/4762

    Capybara::Selenium::Driver.new app,
    browser: :firefox,
    options: options
    end

    Capybara.javascript_driver = ENV['GUI'] ? :firefox : :headless_firefox
    end
    Capybara::Selenium::Driver.new app,
    browser: :firefox,
    options: options
    end

    Capybara.javascript_driver = ENV['GUI'] ? :firefox : :headless_firefox
  3. @bbonamin bbonamin revised this gist Dec 2, 2017. No changes.
  4. @bbonamin bbonamin created this gist Dec 2, 2017.
    7 changes: 7 additions & 0 deletions Brewfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    tap "caskroom/cask"

    cask "google-chrome"
    cask "firefox"

    brew "chromedriver"
    brew "geckodriver"
    20 changes: 20 additions & 0 deletions chrome.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    require 'capybara/rspec'
    require "selenium/webdriver"

    RSpec.configure do |config|
    Capybara.register_driver :chrome do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
    end

    Capybara.register_driver :headless_chrome do |app|
    capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { args: %w(headless disable-gpu window-size=1280,800) }
    )

    Capybara::Selenium::Driver.new app,
    browser: :chrome,
    desired_capabilities: capabilities
    end

    Capybara.javascript_driver = ENV['GUI'] ? :chrome : :headless_chrome
    end
    19 changes: 19 additions & 0 deletions firefox.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    require 'capybara/rspec'
    require "selenium/webdriver"

    RSpec.configure do |config|
    Capybara.register_driver :firefox do |app|
    Capybara::Selenium::Driver.new(app, browser: :firefox)
    end

    Capybara.register_driver :headless_firefox do |app|
    options = Selenium::WebDriver::Firefox::Options.new
    options.headless! # added on https://github.com/SeleniumHQ/selenium/pull/4762

    Capybara::Selenium::Driver.new app,
    browser: :firefox,
    options: options
    end

    Capybara.javascript_driver = ENV['GUI'] ? :firefox : :headless_firefox
    end