Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions examples/tests/cases/case_av_example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ TestBrowserChromeAV:
TestBrowserSafariAV:
Roles:
- Role: desktopSafari
Capabilities:
safariOptions:
prefs:
media.navigator.streams.fake: true
media.navigator.permission.disabled: true
# TODO: Safari options are not yet implemented in selenium
# Capabilities:
# safariOptions:
# media.navigator.streams.fake: true
# media.navigator.permission.disabled: true
App: desktop
Actions:
- Type: navigate
Expand Down
93 changes: 32 additions & 61 deletions lib/core/device_drivers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -179,23 +179,14 @@ def merge_chrome_ops(config_caps, case_caps)

# build the Chrome driver, given a set of options
def build_chrome_driver(chrome_ops)
# local selenium instance
ops = Selenium::WebDriver::Chrome::Options.new(**chrome_ops)
if @url.nil?
# local selenium instance
localChromeOptions = Selenium::WebDriver::Chrome::Options.new(
options: chrome_ops,
)
driver = Selenium::WebDriver.for(
:chrome, options: localChromeOptions
:chrome, options: ops
)
else
# remote selenium grid
log_debug("Selenium Server URL: #{@url}")
remoteChromeOptions = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions": chrome_ops,
)
driver = Selenium::WebDriver.for(
:remote, url: @url, desired_capabilities: remoteChromeOptions,
)
driver = build_remote_driver(ops)
end
return driver
end
Expand All @@ -207,22 +198,15 @@ def merge_firefox_ops(config_caps, case_caps)

# build the Firefox driver, given a set of options
def build_firefox_driver(firefox_ops)
firefoxOptions = Selenium::WebDriver::Firefox::Options.new(
**firefox_ops
)
if @url.nil?
localFirefoxOptions = Selenium::WebDriver::Firefox::Options.new(
options: firefox_ops,
)
driver = Selenium::WebDriver.for(
:firefox, options: localFirefoxOptions
:firefox, options: firefoxOptions
)
else
# remote selenium grid
log_debug("Selenium Server URL: #{@url}")
remoteFirefoxOptions = Selenium::WebDriver::Remote::Capabilities.firefox(
"moz:firefoxOptions" => firefox_ops,
)
driver = Selenium::WebDriver.for(
:remote, url: @url, desired_capabilities: remoteFirefoxOptions,
)
driver = build_remote_driver(firefoxOptions)
end
return driver
end
Expand All @@ -232,22 +216,17 @@ def merge_safari_ops(config_caps, case_caps)
end

def build_safari_driver(safari_ops)
# TODO: Check how to add safari options, this code does not work
# But it does not break the creation of safari webdriver
safariOptions = Selenium::WebDriver::Safari::Options.new(
**safari_ops
)
if @url.nil?
localSafariOptions = Selenium::WebDriver::Safari::Options.new(
options: safari_ops,
)
driver = Selenium::WebDriver.for(
:safari, options: localSafariOptions
:safari, options: safariOptions
)
else
# remote selenium grid
log_debug("Selenium Server URL: #{@url}")
remoteSafariOptions = Selenium::WebDriver::Remote::Capabilities.safari(
safari_ops,
)
driver = Selenium::WebDriver.for(
:remote, url: @url, desired_capabilities: remoteSafariOptions,
)
driver = build_remote_driver(safariOptions)
end
return driver
end
Expand All @@ -257,22 +236,13 @@ def merge_ie_ops(config_caps, case_caps)
end

def build_ie_driver(ie_ops)
iEOptions = Selenium::WebDriver::IE::Options.new(**ie_ops)
if @url.nil?
localIEOptions = Selenium::WebDriver::IE::Options.new(
options: ie_ops,
)
driver = Selenium::WebDriver.for(
:ie, options: localIEOptions
:ie, options: iEOptions
)
else
# remote selenium grid
log_debug("Selenium Server URL: #{@url}")
remoteIEOptions = Selenium::WebDriver::Remote::Capabilities.ie(
"se:ieOptions" => ie_ops,
)
driver = Selenium::WebDriver.for(
:remote, url: @url, desired_capabilities: remoteIEOptions,
)
driver = build_remote_driver(iEOptions)
end
return driver
end
Expand All @@ -282,23 +252,24 @@ def merge_edge_ops(config_caps, case_caps)
end

def build_edge_driver(edge_ops)
edgeOptions = Selenium::WebDriver::Edge::Options.new(
**edge_ops
)
if @url.nil?
localEdgeOptions = Selenium::WebDriver::Edge::Options.new(
options: edge_ops,
)
driver = Selenium::WebDriver.for(
:edge, options: localEdgeOptions
:edge, options: edgeOptions
)
else
# remote selenium grid
log_debug("Selenium Server URL: #{@url}")
remoteEdgeOptions = Selenium::WebDriver::Remote::Capabilities.edge(
"ms:edgeOptions" => edge_ops,
)
driver = Selenium::WebDriver.for(
:remote, url: @url, desired_capabilities: remoteEdgeOptions,
)
driver = build_remote_driver(edgeOptions)
end
return driver
end

def build_remote_driver(options)
# remote selenium grid
log_debug("Selenium Server URL: #{@url}")
return Selenium::WebDriver.for(
:remote, url: @url, options: options,
)
end
end
2 changes: 1 addition & 1 deletion testray.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
spec.add_runtime_dependency "httparty"
spec.add_runtime_dependency "json"
spec.add_runtime_dependency "rest-client"
spec.add_runtime_dependency "selenium-webdriver", "3.142.7"
spec.add_runtime_dependency "selenium-webdriver", "4.4.0"
spec.add_runtime_dependency 'screen-recorder', "1.4.0"
spec.add_runtime_dependency "colorize"
spec.add_runtime_dependency "keisan"
Expand Down