webdriver-user-agent 7.4 → 7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|