webdriver-user-agent 7.4 → 7.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.ruby-version +1 -1
- data/ChangeLog +8 -1
- data/README.md +3 -2
- data/lib/device-info/devices.yaml +63 -26
- data/lib/webdriver-user-agent/browser_options.rb +57 -10
- data/lib/webdriver-user-agent/driver.rb +14 -6
- data/spec/webdriver-user-agent_spec.rb +31 -15
- data/webdriver-user-agent.gemspec +6 -5
- metadata +22 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9260c1a33a202278f16eadeb8c2e3e925e28896eccf6aaf778bc127460e4dbd2
|
4
|
+
data.tar.gz: 70e9b164502d0c04e60c8391e8c6b8164ea6259846cecbe29212353cbf3d45cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e81485d6bf53586daae8c220ce77a8795bf576744eb19e6f6a45951f2dfea4079faadbc86ef540a8a939af0d240c35d9b5c460a719d089453e40ee2102d74736
|
7
|
+
data.tar.gz: 25524c3865c8a54ce01f3c62d46c214fa33b6f1475aea1f5321268ab5c003796f0d40a807efcd16e8198bef8b02f3cfbeffbcf909842cb12162c0f7997621297
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.
|
1
|
+
ruby-2.4.1
|
data/ChangeLog
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== Version 7.5 / 2017-8-22
|
2
|
+
* Enhancements
|
3
|
+
* Added support for modern iPhone and iPad sizes
|
4
|
+
* Added support for driving Safari and Safari Technology Preview
|
5
|
+
* Updated to use new Watir namespace
|
6
|
+
* Updated to Ruby 2.4.1
|
7
|
+
* Updated Chrome and Firefox options configuration to use new Selenium syntax
|
8
|
+
|
1
9
|
=== Version 7.4 / 2016-1-6
|
2
10
|
* Enhancements
|
3
11
|
* Added support for iPad Pro and iPhone 6/6s (Thanks samnissen)
|
@@ -17,4 +25,3 @@
|
|
17
25
|
=== Version 7.1 / 2014-3-2
|
18
26
|
* Enhancements
|
19
27
|
* Added ipad 7 device support (Thanks Matthwe Fleeger)
|
20
|
-
|
data/README.md
CHANGED
@@ -25,6 +25,7 @@ provides a UserAgent.driver method to return a new web-driver with user agent an
|
|
25
25
|
* :browser
|
26
26
|
* :firefox (default)
|
27
27
|
* :chrome
|
28
|
+
* :safari
|
28
29
|
* :agent
|
29
30
|
* :iphone (default)
|
30
31
|
* :ipad
|
@@ -51,9 +52,9 @@ provides a UserAgent.driver method to return a new web-driver with user agent an
|
|
51
52
|
driver.execute_script('return navigator.userAgent')
|
52
53
|
# random agent like "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1"
|
53
54
|
|
54
|
-
### Example using watir
|
55
|
+
### Example using watir
|
55
56
|
|
56
|
-
require 'watir
|
57
|
+
require 'watir'
|
57
58
|
require 'webdriver-user-agent'
|
58
59
|
driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :iphone, :orientation => :landscape)
|
59
60
|
browser = Watir::Browser.new(driver)
|
@@ -11,44 +11,59 @@
|
|
11
11
|
:width: 1366
|
12
12
|
:height: 768
|
13
13
|
:iphone_default: &iphone_default
|
14
|
-
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS
|
14
|
+
:user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1"
|
15
15
|
:portrait:
|
16
16
|
:width: 375
|
17
|
-
:height:
|
17
|
+
:height: 635
|
18
18
|
:landscape:
|
19
|
-
:width:
|
19
|
+
:width: 724
|
20
20
|
:height: 375
|
21
|
-
:iphone:
|
21
|
+
:iphone: &iphone
|
22
22
|
<<: *iphone_default
|
23
|
-
:
|
23
|
+
:iphonex:
|
24
|
+
<<: *iphone_default
|
25
|
+
:iphone8plus: &iphone8plus
|
24
26
|
<<: *iphone_default
|
25
27
|
:portrait:
|
26
28
|
:width: 414
|
27
|
-
:height:
|
29
|
+
:height: 622
|
28
30
|
:landscape:
|
29
31
|
:width: 736
|
30
32
|
:height: 414
|
31
|
-
:
|
32
|
-
<<: *iphone_default
|
33
|
-
:iphone6plus:
|
33
|
+
:iphone8: &iphone8
|
34
34
|
<<: *iphone_default
|
35
35
|
:portrait:
|
36
|
-
:width:
|
37
|
-
:height:
|
36
|
+
:width: 375
|
37
|
+
:height: 553
|
38
38
|
:landscape:
|
39
|
-
:width:
|
40
|
-
:height:
|
39
|
+
:width: 667
|
40
|
+
:height: 375
|
41
|
+
:iphone7plus:
|
42
|
+
<<: *iphone8plus
|
43
|
+
:iphone7:
|
44
|
+
<<: *iphone8
|
45
|
+
:portrait:
|
46
|
+
:iphone6splus:
|
47
|
+
<<: *iphone8plus
|
48
|
+
:iphone6s:
|
49
|
+
<<: *iphone8
|
50
|
+
:iphone6plus:
|
51
|
+
<<: *iphone8plus
|
41
52
|
:iphone6:
|
42
|
-
<<: *
|
43
|
-
:iphone5s:
|
53
|
+
<<: *iphone8
|
54
|
+
:iphone5s: &iphone5s
|
44
55
|
<<: *iphone_default
|
45
56
|
:portrait:
|
46
57
|
:width: 320
|
47
|
-
:height:
|
58
|
+
:height: 454
|
48
59
|
:landscape:
|
49
60
|
:width: 568
|
50
|
-
:height:
|
51
|
-
:
|
61
|
+
:height: 320
|
62
|
+
:iphonese:
|
63
|
+
<<: *iphone5s
|
64
|
+
:iphone5:
|
65
|
+
<<: *iphone5s
|
66
|
+
:iphone4s: &iphone4s
|
52
67
|
<<: *iphone_default
|
53
68
|
:portrait:
|
54
69
|
:width: 320
|
@@ -56,22 +71,44 @@
|
|
56
71
|
:landscape:
|
57
72
|
:width: 480
|
58
73
|
:height: 196
|
59
|
-
:
|
60
|
-
|
74
|
+
:iphone4:
|
75
|
+
<<: *iphone4s
|
76
|
+
:ipad: &ipad
|
77
|
+
:user_agent: "Mozilla/5.0 (iPad; CPU OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1"
|
61
78
|
:portrait:
|
62
79
|
:width: 768
|
63
|
-
:height:
|
80
|
+
:height: 954
|
64
81
|
:landscape:
|
65
82
|
:width: 1024
|
66
|
-
:height:
|
67
|
-
:
|
68
|
-
|
83
|
+
:height: 698
|
84
|
+
:ipad_default:
|
85
|
+
<<: *ipad
|
86
|
+
:ipad_pro: &ipad_pro
|
87
|
+
<<: *ipad
|
69
88
|
:portrait:
|
70
89
|
:width: 1024
|
71
|
-
:height:
|
90
|
+
:height: 1296
|
72
91
|
:landscape:
|
73
92
|
:width: 1366
|
74
|
-
:height:
|
93
|
+
:height: 954
|
94
|
+
:ipad_pro_12:
|
95
|
+
<<: *ipad_pro
|
96
|
+
:ipad_pro_10:
|
97
|
+
<<: *ipad
|
98
|
+
:portrait:
|
99
|
+
:width: 834
|
100
|
+
:height: 1042
|
101
|
+
:landscape:
|
102
|
+
:width: 1112
|
103
|
+
:height: 764
|
104
|
+
:ipad_pro_9:
|
105
|
+
<<: *ipad
|
106
|
+
:portrait:
|
107
|
+
:width: 768
|
108
|
+
:height: 954
|
109
|
+
:landscape:
|
110
|
+
:width: 1024
|
111
|
+
:height: 698
|
75
112
|
:android_phone:
|
76
113
|
:user_agent: "Mozilla/5.0 (Linux; U; Android 4.0.1; en-us; sdk Build/ICS_MR0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
|
77
114
|
:portrait:
|
@@ -2,6 +2,9 @@ require 'facets/hash/except'
|
|
2
2
|
|
3
3
|
module Webdriver
|
4
4
|
module UserAgent
|
5
|
+
|
6
|
+
MINIMUM_MACOS_VERSION_NUMBER = 12
|
7
|
+
|
5
8
|
class BrowserOptions
|
6
9
|
|
7
10
|
def initialize(opts, user_agent_string)
|
@@ -9,9 +12,10 @@ module Webdriver
|
|
9
12
|
options[:browser] ||= :firefox
|
10
13
|
options[:agent] ||= :iphone
|
11
14
|
options[:orientation] ||= :portrait
|
12
|
-
|
15
|
+
set_preview_option(options[:safari_technology_preview]) if (@options[:browser] == :safari)
|
16
|
+
|
13
17
|
options[:viewport_width], options[:viewport_height] = parse_viewport_sizes(options[:viewport_width], options[:viewport_height])
|
14
|
-
|
18
|
+
|
15
19
|
initialize_for_browser(user_agent_string)
|
16
20
|
end
|
17
21
|
|
@@ -32,25 +36,68 @@ module Webdriver
|
|
32
36
|
@options ||= {}
|
33
37
|
end
|
34
38
|
|
39
|
+
def set_preview_option(opt)
|
40
|
+
@stp = opt
|
41
|
+
@stp = false unless @stp.is_a?(TrueClass)
|
42
|
+
end
|
43
|
+
|
35
44
|
def initialize_for_browser(user_agent_string)
|
36
45
|
case options[:browser]
|
37
46
|
when :firefox
|
38
|
-
|
39
|
-
|
47
|
+
profile ||= Selenium::WebDriver::Firefox::Profile.new
|
48
|
+
profile['general.useragent.override'] = user_agent_string
|
49
|
+
|
50
|
+
options[:options] ||= Selenium::WebDriver::Firefox::Options.new
|
51
|
+
options[:options].profile = profile
|
40
52
|
when :chrome
|
41
|
-
options[:
|
42
|
-
options[:
|
53
|
+
options[:options] ||= Selenium::WebDriver::Chrome::Options.new
|
54
|
+
options[:options].add_argument "--user-agent=#{user_agent_string}"
|
55
|
+
when :safari
|
56
|
+
change_safari_user_agent_string(user_agent_string)
|
57
|
+
options
|
43
58
|
else
|
44
|
-
raise "WebDriver UserAgent currently only supports :firefox and :
|
59
|
+
raise "WebDriver UserAgent currently only supports :chrome, :firefox and :safari."
|
45
60
|
end
|
46
|
-
|
47
61
|
end
|
48
|
-
|
62
|
+
|
49
63
|
def parse_viewport_sizes(width, height)
|
50
64
|
return ["0","0"] unless "#{width}".to_i > 0 && "#{height}".to_i > 0
|
51
|
-
|
65
|
+
|
52
66
|
["#{width}", "#{height}"]
|
53
67
|
end
|
68
|
+
|
69
|
+
def change_safari_user_agent_string(user_agent_string)
|
70
|
+
raise "Safari requires a Mac" unless OS.mac?
|
71
|
+
|
72
|
+
ua = "\\\"#{user_agent_string}\\\"" # escape for shell quoting
|
73
|
+
if @stp
|
74
|
+
Selenium::WebDriver::Safari.technology_preview!
|
75
|
+
cmd = "defaults write com.apple.SafariTechnologyPreview CustomUserAgent \"#{ua}\""
|
76
|
+
else
|
77
|
+
cmd = "defaults write com.apple.Safari CustomUserAgent \"#{ua}\""
|
78
|
+
end
|
79
|
+
|
80
|
+
output = `#{cmd}`
|
81
|
+
|
82
|
+
error_message = "Unable to execute '#{cmd}'. "
|
83
|
+
error_message += "Error message reported: '#{output}'"
|
84
|
+
error_message += "Please execute the command manually and correct any errors."
|
85
|
+
|
86
|
+
raise error_message unless $?.success?
|
87
|
+
end
|
88
|
+
|
89
|
+
# Require a Mac at version 12 (Sierra) or greater
|
90
|
+
def require_mac_version
|
91
|
+
raise "Safari requires a Mac" unless OS.mac?
|
92
|
+
raise "Selenium only works with Safari on Sierra or newer" unless valid_mac_version?
|
93
|
+
end
|
94
|
+
|
95
|
+
def valid_mac_version?
|
96
|
+
version = "#{`defaults read loginwindow SystemVersionStampAsString`}"
|
97
|
+
version_number = "#{version.split(".")[1]}"
|
98
|
+
version_number.to_i >= MINIMUM_MACOS_VERSION_NUMBER
|
99
|
+
end
|
100
|
+
|
54
101
|
end
|
55
102
|
end
|
56
103
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'os'
|
2
3
|
require 'selenium-webdriver'
|
3
4
|
require 'webdriver-user-agent/browser_options'
|
4
5
|
require 'webdriver-user-agent/devices'
|
@@ -14,18 +15,22 @@ module Webdriver
|
|
14
15
|
user_agent_string ||= agent_string_for opts[:agent]
|
15
16
|
options = BrowserOptions.new(opts, user_agent_string)
|
16
17
|
build_driver_using options
|
18
|
+
ensure
|
19
|
+
if safari?(opts)
|
20
|
+
case
|
21
|
+
when opts[:safari_technology_preview].is_a?(TrueClass)
|
22
|
+
`defaults delete com.apple.SafariTechnologyPreview CustomUserAgent`
|
23
|
+
else
|
24
|
+
`defaults delete com.apple.Safari CustomUserAgent`
|
25
|
+
end
|
26
|
+
end
|
17
27
|
end
|
18
28
|
|
19
29
|
private
|
20
30
|
|
21
31
|
def resize_inner_window(driver, width, height)
|
22
|
-
if driver.browser == :firefox or :chrome
|
23
|
-
driver.execute_script("window.open(#{driver.current_url.to_json},'_blank');")
|
24
|
-
driver.close
|
25
|
-
driver.switch_to.window driver.window_handles.first
|
26
|
-
end
|
27
32
|
target_size = Selenium::WebDriver::Dimension.new(width.to_i, height.to_i)
|
28
|
-
driver.manage.window.
|
33
|
+
driver.manage.window.resize_to target_size.width, target_size.height
|
29
34
|
end
|
30
35
|
|
31
36
|
def build_driver_using(options)
|
@@ -36,6 +41,9 @@ module Webdriver
|
|
36
41
|
driver
|
37
42
|
end
|
38
43
|
|
44
|
+
def safari?(o = {})
|
45
|
+
o[:browser] == :safari
|
46
|
+
end
|
39
47
|
end
|
40
48
|
end
|
41
49
|
end
|
@@ -4,15 +4,18 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
4
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
5
|
require 'webdriver-user-agent'
|
6
6
|
require 'selenium-webdriver'
|
7
|
-
require 'watir
|
7
|
+
require 'watir'
|
8
8
|
|
9
|
-
CHROMEBROWSER_UICHROME_HEIGHT
|
10
|
-
|
11
|
-
|
9
|
+
CHROMEBROWSER_UICHROME_HEIGHT = 114
|
10
|
+
CHROMEBROWSER_UICHROME_HEIGHT_TALL = 41
|
11
|
+
CHROMEBROWSER_UI_MINIMUM_HEIGHT = 158
|
12
|
+
FIREFOXBROWSER_UICHROME_HEIGHT = 74
|
13
|
+
SAFARIBROWSER_UICHROME_HEIGHT = 38
|
12
14
|
|
13
15
|
describe "webdriver user agent" do
|
14
16
|
after :each do
|
15
|
-
@
|
17
|
+
@browser.close if @browser rescue nil
|
18
|
+
@driver.quit if @driver rescue nil
|
16
19
|
end
|
17
20
|
|
18
21
|
# window.innerWidth and window.innerHeight
|
@@ -25,7 +28,16 @@ describe "webdriver user agent" do
|
|
25
28
|
expect(@driver.browser).to eq(:firefox)
|
26
29
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
|
27
30
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
28
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(
|
31
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(635 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "can create a new webdriver driver using safari and iphone 6 plus, and landscape" do
|
35
|
+
@driver = Webdriver::UserAgent.driver(:browser => :safari, :agent => :iphone6plus, :orientation => :landscape)
|
36
|
+
expect(@driver.browser).to eq(:safari)
|
37
|
+
|
38
|
+
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
|
39
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(736)
|
40
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(414 - SAFARIBROWSER_UICHROME_HEIGHT)
|
29
41
|
end
|
30
42
|
|
31
43
|
it "can create a new webdriver driver using chrome and iphone 6 plus (landscape)" do
|
@@ -37,16 +49,16 @@ describe "webdriver user agent" do
|
|
37
49
|
end
|
38
50
|
|
39
51
|
it "can create a new webdriver driver using chrome and iPad (landscape)" do
|
40
|
-
@driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :
|
52
|
+
@driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :ipad, :orientation => :landscape)
|
41
53
|
expect(@driver.browser).to eq(:chrome)
|
42
54
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPad'
|
43
55
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(1024)
|
44
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(
|
56
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(698 - CHROMEBROWSER_UICHROME_HEIGHT)
|
45
57
|
end
|
46
58
|
|
47
59
|
it "can create a new webdriver driver using chrome and iPad Pro (portrait)" do
|
48
60
|
# Testing the height will fail if your monitor is not tall enough.
|
49
|
-
# For instance, a 15" MacBook Pro cannot be.
|
61
|
+
# For instance, a 15" MacBook Pro at default scaled resolution cannot be.
|
50
62
|
# This will determine if your monitor is tall enough.
|
51
63
|
# Optionally, you can override with an environment variable:
|
52
64
|
# `I_HAVE_A_TALL_MONITOR=true rspec spec/this_file.rb`
|
@@ -86,7 +98,7 @@ describe "webdriver user agent" do
|
|
86
98
|
expect(@driver.browser).to eq(:chrome)
|
87
99
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'Android'
|
88
100
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(768)
|
89
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(873 -
|
101
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(873 - CHROMEBROWSER_UICHROME_HEIGHT_TALL)
|
90
102
|
end
|
91
103
|
|
92
104
|
it "can create a new webdriver driver using firefox and desktop (landscape)" do
|
@@ -116,11 +128,14 @@ describe "webdriver user agent" do
|
|
116
128
|
it "can create a new webdriver driver using an existing firefox profile" do
|
117
129
|
profile = Selenium::WebDriver::Firefox::Profile.new
|
118
130
|
profile['browser.startup.homepage'] = "data:text/html,<title>hello</title>"
|
119
|
-
|
131
|
+
options = Selenium::WebDriver::Firefox::Options.new
|
132
|
+
options.profile = profile
|
133
|
+
@driver = Webdriver::UserAgent.driver(:browser => :firefox, options: options)
|
134
|
+
|
120
135
|
expect(@driver.browser).to eq(:firefox)
|
121
136
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
|
122
137
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
123
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(
|
138
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(635 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
124
139
|
end
|
125
140
|
|
126
141
|
it "can create a new webdriver driver using firefox and user-specified user agent" do
|
@@ -141,15 +156,16 @@ describe "webdriver user agent" do
|
|
141
156
|
end
|
142
157
|
|
143
158
|
it "can create a new webdriver driver, handling for nonsense height and widths" do
|
144
|
-
@driver = Webdriver::UserAgent.driver(:viewport_width => "abc", :agent => :
|
159
|
+
@driver = Webdriver::UserAgent.driver(:viewport_width => "abc", :agent => :iphone8)
|
145
160
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
146
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(
|
161
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(553 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
147
162
|
end
|
148
163
|
|
149
164
|
it "can allow using selenium driver for watir browser" do
|
150
165
|
@driver = Webdriver::UserAgent.driver(:browser => :firefox, :agent => :iphone, :orientation => :portrait)
|
151
166
|
@browser = Watir::Browser.new @driver
|
152
|
-
expect(@browser
|
167
|
+
expect(@browser).to be_a(Watir::Browser)
|
168
|
+
expect(@browser.url).to be_a(String)
|
153
169
|
end
|
154
170
|
|
155
171
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
|
-
gem.authors = ["Alister Scott", "Jeff Morgan"]
|
5
|
-
gem.email = ["alister.scott@gmail.com", "jeff.morgan@leandog.com"]
|
4
|
+
gem.authors = ["Alister Scott", "Jeff Morgan", "Sandeep Singh", "Sam Nissen"]
|
5
|
+
gem.email = ["alister.scott@gmail.com", "jeff.morgan@leandog.com", "sandeepnagra@gmail.com", "scnissen@gmail.com"]
|
6
6
|
gem.description = %q{A helper gem to emulate populate device user agents and resolutions when using webdriver}
|
7
7
|
gem.summary = %q{A helper gem to emulate populate device user agents and resolutions when using webdriver}
|
8
8
|
gem.homepage = "https://github.com/alisterscott/webdriver-user-agent"
|
@@ -12,14 +12,15 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
13
|
gem.name = "webdriver-user-agent"
|
14
14
|
gem.require_paths = ["lib"]
|
15
|
-
gem.version = "7.
|
15
|
+
gem.version = "7.5"
|
16
16
|
gem.requirements << 'chromedriver, v2.20'
|
17
17
|
# chromedriver v2.19 causes
|
18
18
|
# Selenium::WebDriver::Error::NoSuchDriverError: no such session errors
|
19
|
-
gem.add_dependency 'selenium-webdriver'
|
19
|
+
gem.add_dependency 'selenium-webdriver', '>= 3.4.0'
|
20
|
+
gem.add_dependency 'os'
|
20
21
|
gem.add_dependency 'facets'
|
21
22
|
gem.add_dependency 'json'
|
22
23
|
gem.add_dependency 'psych'
|
23
24
|
gem.add_development_dependency 'rspec'
|
24
|
-
gem.add_development_dependency 'watir
|
25
|
+
gem.add_development_dependency 'watir'
|
25
26
|
end
|
metadata
CHANGED
@@ -1,18 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdriver-user-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '7.
|
4
|
+
version: '7.5'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alister Scott
|
8
8
|
- Jeff Morgan
|
9
|
+
- Sandeep Singh
|
10
|
+
- Sam Nissen
|
9
11
|
autorequire:
|
10
12
|
bindir: bin
|
11
13
|
cert_chain: []
|
12
|
-
date:
|
14
|
+
date: 2018-08-21 00:00:00.000000000 Z
|
13
15
|
dependencies:
|
14
16
|
- !ruby/object:Gem::Dependency
|
15
17
|
name: selenium-webdriver
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.4.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.4.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: os
|
16
32
|
requirement: !ruby/object:Gem::Requirement
|
17
33
|
requirements:
|
18
34
|
- - ">="
|
@@ -82,7 +98,7 @@ dependencies:
|
|
82
98
|
- !ruby/object:Gem::Version
|
83
99
|
version: '0'
|
84
100
|
- !ruby/object:Gem::Dependency
|
85
|
-
name: watir
|
101
|
+
name: watir
|
86
102
|
requirement: !ruby/object:Gem::Requirement
|
87
103
|
requirements:
|
88
104
|
- - ">="
|
@@ -100,6 +116,8 @@ description: A helper gem to emulate populate device user agents and resolutions
|
|
100
116
|
email:
|
101
117
|
- alister.scott@gmail.com
|
102
118
|
- jeff.morgan@leandog.com
|
119
|
+
- sandeepnagra@gmail.com
|
120
|
+
- scnissen@gmail.com
|
103
121
|
executables: []
|
104
122
|
extensions: []
|
105
123
|
extra_rdoc_files: []
|
@@ -143,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
161
|
requirements:
|
144
162
|
- chromedriver, v2.20
|
145
163
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
164
|
+
rubygems_version: 2.7.7
|
147
165
|
signing_key:
|
148
166
|
specification_version: 4
|
149
167
|
summary: A helper gem to emulate populate device user agents and resolutions when
|