Skip to content

Instantly share code, notes, and snippets.

@andrewyoo
Last active December 3, 2023 14:01
Show Gist options
  • Save andrewyoo/7c2e5f59dc988684db71cddd64b03ee8 to your computer and use it in GitHub Desktop.
Save andrewyoo/7c2e5f59dc988684db71cddd64b03ee8 to your computer and use it in GitHub Desktop.
Getting Started: Capybara + Selenium + Custom user-agent, chrome settings
require 'capybara'
require 'selenium/webdriver'
require 'capybara/dsl'
include Capybara::DSL
Capybara.run_server = false
# setting driver
# rack_test is default and non js
# selenium_chome_headless seems best headless option
# poltergist has page.driver.network_traffic ability
Capybara.register_driver(:iphone_headless) do |app|
user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3'
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: (%w[ headless disable-gpu hide-scrollbars ] << "--user-agent='#{user_agent}'") }
)
Capybara::Selenium::Driver.new(app, browser: :chrome, desired_capabilities: capabilities)
end
Capybara.default_driver = :iphone_headless
#Capybara.default_driver = :selenium_chrome_headless
#Capybara.default_driver = :selenium_chrome
# change window size
# desktop 992x600, mobile 375x667
page.driver.browser.manage.window.resize_to(375, 667)
visit 'https://www.google.com'
page.save_screenshot('screenshot.png')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment