Class: Grell::CapybaraDriver
- Inherits:
-
Object
- Object
- Grell::CapybaraDriver
- Defined in:
- lib/grell/capybara_driver.rb
Overview
This class setups the driver for capybara. Used internally by the CrawlerManager It uses Portelgeist to control PhantomJS
Defined Under Namespace
Modules: FakePoltergeistLogger
Constant Summary collapse
- USER_AGENT =
"Mozilla/5.0 (Grell Crawler)".freeze
Instance Method Summary collapse
-
#setup_capybara ⇒ Object
Returns a poltergeist driver.
Instance Method Details
#setup_capybara ⇒ Object
Returns a poltergeist driver
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/grell/capybara_driver.rb', line 8 def @poltergeist_driver = nil # Capybara will not re-run the block if the driver name already exists, so the driver name # will have a time integer appended to ensure uniqueness. driver_name = "poltergeist_crawler_#{Time.now.to_f}".to_sym Grell.logger.info "GRELL Registering poltergeist driver with name '#{driver_name}'" Capybara.register_driver driver_name do |app| @poltergeist_driver = Capybara::Poltergeist::Driver.new(app, js_errors: false, inspector: false, phantomjs_logger: FakePoltergeistLogger, phantomjs_options: ['--debug=no', '--load-images=no', '--ignore-ssl-errors=yes', '--ssl-protocol=TLSv1.2']) end Capybara.default_max_wait_time = 3 Capybara.run_server = false Capybara.default_driver = driver_name Capybara.current_session.driver.headers = { # The driver gets initialized when modified here "DNT" => 1, "User-Agent" => USER_AGENT } raise 'Poltergeist Driver could not be properly initialized' unless @poltergeist_driver @poltergeist_driver end |