Module: TestCentricity::WebDriverConnect

Includes:
Capybara::DSL
Defined in:
lib/testcentricity_web/webdriver_helper.rb

Class Method Summary collapse

Class Method Details

.initialize_web_driver(app_host = nil) ⇒ Object



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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/testcentricity_web/webdriver_helper.rb', line 9

def self.initialize_web_driver(app_host = nil)
  Capybara.app_host = app_host unless app_host.nil?
  browser = ENV['WEB_BROWSER']

  # assume that we're testing within a local desktop web browser
  Environ.set_platform(:desktop)
  Environ.set_browser(browser)
  Environ.set_device(false)
  Environ.set_device_type('browser')

  case browser.downcase.to_sym
    when :appium
      initialize_appium
      context = 'mobile device emulator'
    when :browserstack
      initialize_browserstack
      context = 'Browserstack cloud service'
    when :crossbrowser
      initialize_crossbrowser
      context = 'CrossBrowserTesting cloud service'
    when :poltergeist
      initialize_poltergeist
      context = 'PhantomJS'
    when :saucelabs
      initialize_saucelabs
      context = 'Sauce Labs cloud service'
    when :testingbot
      initialize_testingbot
      context = 'TestingBot cloud service'
    else
      if ENV['SELENIUM'] == 'remote'
        initialize_remote
        context = 'Selenium Grid2'
      else
        initialize_local_browser
        context = 'local instance'
      end
  end

  # set browser window size only if testing with a desktop web browser
  unless Environ.is_device? || Capybara.current_driver == :poltergeist
    initialize_browser_size
  end

  puts "Using #{Environ.browser.to_s} browser via #{context}"
end

.set_domain(url) ⇒ Object



56
57
58
# File 'lib/testcentricity_web/webdriver_helper.rb', line 56

def self.set_domain(url)
  Capybara.app_host = url
end

.set_webdriver_path(project_path) ⇒ Object

Set the WebDriver path for Chrome, IE, or Edge browsers



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/testcentricity_web/webdriver_helper.rb', line 61

def self.set_webdriver_path(project_path)
  path_to_driver = nil
  case ENV['WEB_BROWSER'].downcase.to_sym
    when :chrome
      if OS.osx?
        path_to_driver = 'features/support/drivers/mac/chromedriver'
      elsif OS.windows?
        path_to_driver = 'features/support/drivers/windows/chromedriver.exe'
      end
      Selenium::WebDriver::Chrome.driver_path = File.join(project_path, path_to_driver)
    when :ie
      path_to_driver = 'features/support/drivers/windows/IEDriverServer.exe'
      Selenium::WebDriver::IE.driver_path = File.join(project_path, path_to_driver)
    when :edge
      path_to_driver = 'features/support/drivers/windows/MicrosoftWebDriver.exe'
      Selenium::WebDriver::Edge.driver_path = File.join(project_path, path_to_driver)
  end
  puts "The webdriver path is: #{path_to_driver}" unless path_to_driver.nil?
end