Class: Maze::Client::Selenium::BrowserStackClient

Inherits:
BaseClient
  • Object
show all
Defined in:
lib/maze/client/selenium/bs_client.rb

Instance Method Summary collapse

Methods inherited from BaseClient

#handle_start_error, #start_driver

Instance Method Details

#add_browser_capabilities(config, capabilities) ⇒ Object



40
41
42
43
# File 'lib/maze/client/selenium/bs_client.rb', line 40

def add_browser_capabilities(config, capabilities)
  browsers = YAML.safe_load(File.read("#{__dir__}/bs_browsers.yml"))
  capabilities.deep_merge! browsers[config.browser]
end

#create_capabilities(config) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/maze/client/selenium/bs_client.rb', line 25

def create_capabilities(config)
  raw_capabilities = {
    'acceptInsecureCerts' => true,
    'bstack:options' => {
      'local' => 'true',
      'localIdentifier' => Maze.run_uuid
    }
  }
  raw_capabilities.deep_merge! JSON.parse(config.capabilities_option)
  raw_capabilities.merge! project_name_capabilities
  add_browser_capabilities(config, raw_capabilities)
  capabilities = ::Selenium::WebDriver::Remote::Capabilities.new raw_capabilities
  config.capabilities = capabilities
end

#log_run_outroObject



50
51
52
# File 'lib/maze/client/selenium/bs_client.rb', line 50

def log_run_outro
  log_session_info
end

#start_sessionObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/maze/client/selenium/bs_client.rb', line 7

def start_session
  config = Maze.config

  # Start the tunnel
  Maze::Client::BrowserStackClientUtils.start_local_tunnel config.bs_local,
                                                           Maze.run_uuid,
                                                           config.access_key

  create_capabilities(config)

  # Start the driver
  selenium_url = "https://#{config.username}:#{config.access_key}@hub.browserstack.com/wd/hub"
  start_driver(config, selenium_url)

  # Log details for the session
  log_session_info
end

#stop_sessionObject



45
46
47
48
# File 'lib/maze/client/selenium/bs_client.rb', line 45

def stop_session
  super
  Maze::Client::BrowserStackClientUtils.stop_local_tunnel
end