Class: Crabfarm::Adapters::Browser::AbstractWebdriver

Inherits:
Object
  • Object
show all
Defined in:
lib/crabfarm/adapters/browser/abstract_webdriver.rb

Direct Known Subclasses

Chrome, Firefox, PhantomJs, RemoteWebdriver

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_proxy = nil, _viewer = nil) ⇒ AbstractWebdriver

Returns a new instance of AbstractWebdriver.



8
9
10
11
12
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 8

def initialize(_proxy=nil, _viewer=nil)
  @config = load_driver_config
  @config[:proxy] = _proxy
  @viewer = _viewer
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



6
7
8
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 6

def config
  @config
end

#viewerObject

Returns the value of attribute viewer.



6
7
8
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 6

def viewer
  @viewer
end

Instance Method Details

#build_driver(_session_id) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 22

def build_driver(_session_id)
  wrap_driver(if viewer.nil?
    build_webdriver_instance
  else
    viewer.attach _session_id == :default_driver
  end)
end

#cleanup_driver_servicesObject



18
19
20
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 18

def cleanup_driver_services
  stop_server if viewer.nil?
end

#prepare_driver_servicesObject



14
15
16
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 14

def prepare_driver_services
  start_server if viewer.nil?
end

#release_driver(_session_id, _wrapped) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/crabfarm/adapters/browser/abstract_webdriver.rb', line 30

def release_driver(_session_id, _wrapped)
  if viewer.nil?
    _wrapped.driver.quit rescue nil
  else
    viewer.detach _wrapped.driver
  end
end