class Wayfarer::HTTPAdapters::SeleniumAdapter
An adapter for Selenium WebDrivers @api private
Attributes
driver[R]
@!attribute [r] driver @return [URI] the Selenium WebDriver.
Public Class Methods
new(config = Wayfarer.config)
click to toggle source
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 16 def initialize(config = Wayfarer.config) @config = config end
Public Instance Methods
browser()
click to toggle source
A Capybara driver that wraps the {#driver}. @see github.com/teamcapybara/capybara Capybara
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 52 def browser @browser ||= instantiate_capybara_driver end
fetch(uri)
click to toggle source
Fetches a page. @return [Page]
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 22 def fetch(uri) driver.navigate.to(uri) Page.new( uri: @driver.current_url, status_code: @driver.response_code, body: @driver.page_source, headers: @driver.response_headers ) end
free()
click to toggle source
Quits the browser.
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 40 def free @driver&.quit @driver = nil end
reload!()
click to toggle source
Closes the driver.
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 34 def reload! @driver&.close @driver = nil end
Private Instance Methods
instantiate_capybara_driver()
click to toggle source
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 66 def instantiate_capybara_driver Capybara.run_server = false Capybara.current_driver = :selenium capybara_driver = Capybara::Selenium::Driver.new(nil) capybara_driver.instance_variable_set(:@browser, driver) session = Capybara::Session.new(:selenium, nil) session.instance_variable_set(:@driver, capybara_driver) session end
instantiate_driver()
click to toggle source
# File lib/wayfarer/http_adapters/selenium_adapter.rb, line 58 def instantiate_driver driver = Selenium::WebDriver.for(*@config.selenium_argv) driver.manage.window.size = Selenium::WebDriver::Dimension.new( *@config.window_size ) driver end