Skip to content

Commit dd7090c

Browse files
committed
[rb] get Safari tests passing on Mac, including correctly specifying browser name for technology preview
1 parent b30f9a6 commit dd7090c

8 files changed

Lines changed: 18 additions & 9 deletions

File tree

rb/lib/selenium/webdriver/remote/capabilities.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ def firefox(opts = {})
112112
alias_method :ff, :firefox
113113

114114
def safari(opts = {})
115+
browser = Selenium::WebDriver::Safari.technology_preview? ? "Safari Technology Preview" : 'safari'
116+
115117
new({
116-
browser_name: 'safari',
118+
browser_name: browser,
117119
platform_name: :mac
118120
}.merge(opts))
119121
end

rb/lib/selenium/webdriver/safari.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,19 @@ module Safari
2626
autoload :Service, 'selenium/webdriver/safari/service'
2727

2828
class << self
29+
attr_accessor :use_technology_preview
30+
2931
def technology_preview
3032
"/Applications/Safari\ Technology\ Preview.app/Contents/MacOS/safaridriver"
3133
end
3234

3335
def technology_preview!
3436
Service.driver_path = technology_preview
37+
@use_technology_preview = true
38+
end
39+
40+
def technology_preview?
41+
use_technology_preview
3542
end
3643

3744
def path=(path)

rb/spec/integration/selenium/webdriver/action_builder_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ module WebDriver
5353
expect(keylogger.text.strip).to match(/^(focus )?keydown keydown keypress keyup keydown keypress keyup keyup$/)
5454
end
5555

56-
it 'can press and release modifier keys', except: {browser: %i[edge safari_preview]} do
56+
it 'can press and release modifier keys', except: {browser: %i[edge safari]} do
5757
driver.navigate.to url_for('javascriptPage.html')
5858

5959
event_input = driver.find_element(id: 'theworks')
@@ -102,7 +102,7 @@ module WebDriver
102102
expect(input.attribute(:value)).to eq('abcd')
103103
end
104104

105-
it 'can release pressed keys via release action', except: {browser: :safari_preview} do
105+
it 'can release pressed keys via release action', except: {browser: :safari} do
106106
driver.navigate.to url_for('javascriptPage.html')
107107

108108
event_input = driver.find_element(id: 'theworks')

rb/spec/integration/selenium/webdriver/manager_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ module WebDriver
121121

122122
types = %i[tab window]
123123
types.each do |type|
124-
it "should be able to open a new #{type}", only: {browser: %i[safari_preview firefox ie chrome edge_chrome]} do
124+
it "should be able to open a new #{type}" do
125125
before_window_handles = driver.window_handles.length
126126
driver.manage.new_window(type)
127127
expect(driver.window_handles.length).to eq(before_window_handles + 1)

rb/spec/integration/selenium/webdriver/remote/element_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module WebDriver
3030
driver.file_detector = nil
3131
end
3232

33-
context 'when uploading one file', only: {browser: %i[chrome firefox ie]} do
33+
context 'when uploading one file', only: {browser: %i[chrome firefox ie safari]} do
3434
it 'uses the file detector' do
3535
driver.navigate.to url_for('upload.html')
3636

@@ -46,7 +46,7 @@ module WebDriver
4646
end
4747
end
4848

49-
context 'when uploading multiple files', only: {browser: %i[chrome firefox]} do
49+
context 'when uploading multiple files', only: {browser: %i[chrome firefox safari]} do
5050
it 'uses the file detector' do
5151
driver.navigate.to url_for('upload_multiple.html')
5252

rb/spec/integration/selenium/webdriver/storage_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
module Selenium
2323
module WebDriver
2424
module DriverExtensions
25-
describe HasWebStorage, only: {browser: %i[edge edge_chrome chrome ie firefox safari]} do
25+
describe HasWebStorage do
2626
shared_examples 'web storage' do
2727
before do
2828
driver.navigate.to url_for('clicks.html')

rb/spec/integration/selenium/webdriver/timeout_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ module WebDriver
8484
expect { driver.navigate.to url_for('sleep?time=3') }.to raise_error(WebDriver::Error::TimeoutError)
8585
end
8686

87-
it 'should timeout if page takes too long to load after click' do
87+
it 'should timeout if page takes too long to load after click', except: {browser: %i[safari safari_preview]} do
8888
driver.navigate.to url_for('page_with_link_to_slow_loading_page.html')
8989

9090
expect { driver.find_element(id: 'link-to-slow-loading-page').click }.to raise_error(WebDriver::Error::TimeoutError)

rb/spec/integration/selenium/webdriver/window_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ module WebDriver
118118

119119
# Edge: Not Yet - https://dev.windows.com/en-us/microsoft-edge/platform/status/webdriver/details/
120120
# https://github.com/mozilla/geckodriver/issues/1281
121-
it 'can make window full screen', only: {window_manager: true, browser: %i[chrome edge_chrome ie firefox safari_preview]},
121+
it 'can make window full screen', only: {window_manager: true},
122122
exclude: [{driver: :remote, browser: :firefox, platform: :linux},
123123
{browser: %i[chrome edge_chrome]}] do
124124
window.size = old_size = Dimension.new(700, 700)

0 commit comments

Comments
 (0)