webdrivers 4.4.1 → 4.6.1
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 +4 -4
- data/CHANGELOG.md +30 -1
- data/LICENSE.txt +23 -23
- data/README.md +29 -6
- data/lib/webdrivers/chrome_finder.rb +4 -2
- data/lib/webdrivers/chromedriver.rb +34 -13
- data/lib/webdrivers/edge_finder.rb +17 -6
- data/lib/webdrivers/edgedriver.rb +38 -30
- data/lib/webdrivers/iedriver.rb +9 -6
- data/lib/webdrivers/network.rb +2 -0
- data/lib/webdrivers/system.rb +11 -1
- data/lib/webdrivers/version.rb +1 -1
- data/spec/webdrivers/chrome_finder_spec.rb +1 -1
- data/spec/webdrivers/edge_finder_spec.rb +9 -11
- data/spec/webdrivers/edgedriver_spec.rb +1 -3
- data/spec/webdrivers/system_spec.rb +27 -21
- metadata +37 -26
- data/.github/ISSUE_TEMPLATE.md +0 -16
- data/.gitignore +0 -8
- data/.rubocop.yml +0 -96
- data/.travis.yml +0 -41
- data/Gemfile +0 -6
- data/Rakefile +0 -11
- data/appveyor.yml +0 -45
- data/bin/console +0 -15
- data/bin/setup +0 -8
- data/gemfiles/Gemfile.edge +0 -7
- data/support/install_jruby.ps1 +0 -7
- data/support/install_msedge.ps1 +0 -11
- data/webdrivers.gemspec +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 543fb2ae13f36325fe5fc7cfd8a4c890e27d3eabdb239abbe2d816e656db9bda
|
4
|
+
data.tar.gz: f2cf830140dde3e9127e556cf46357fa6538b40425636dce02aa020000df8282
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dfa4804f4ec0342dd24df0ecbdddf8d2456e12037e73e72efc88b11b0e4c355159ab5bb818309195ab09c90fcf4a09ede79344b955763ca74c381b6d0cb378c
|
7
|
+
data.tar.gz: d5e802872d42a2a8929421872563457263f610cb2f536acded38d28b03ff8986f13094bd0efbdd32223d541cd1245425f57937de7ea262849985c80409f7c89f
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,37 @@
|
|
1
|
+
# 4.6.1 (2021-08-19)
|
2
|
+
* Fix bug in IEdriver caused by bad formatting in recent release
|
3
|
+
|
4
|
+
# 4.6.0 (2021-02-26)
|
5
|
+
* Update `Edgedriver` naming to support Selenium 4 beta (([#206](https://github.com/titusfortner/webdrivers/pull/206))
|
6
|
+
|
7
|
+
# 4.5.0 (2021-01-19)
|
8
|
+
* Improve format of README usage section. Thanks, [okuramasafumi](https://github.com/okuramasafumi)!
|
9
|
+
* `chromedriver` - Add support for Apple M1 specific builds ([#193](https://github.com/titusfortner/webdrivers/pull/193)). Thanks, [MichaelHoste](https://github.com/MichaelHoste)!
|
10
|
+
* `msedgedriver` - Add support for Apple M1 specific builds.
|
11
|
+
* `msedgedriver` - Added automatic selection of 32-bit vs 64-bit builds on Windows and WSLv1.
|
12
|
+
* When using this gem in WSLv2, Chrome installed on the Linux filesystem will be automatically used ([#196](https://github.com/titusfortner/webdrivers/pull/196)).
|
13
|
+
WSLv1 continues to automatically use Chrome from the Windows filesystem though. Thanks, [fabioxgn](https://github.com/fabioxgn)!
|
14
|
+
* We'll aim to make the behavior consistent in a future release.
|
15
|
+
|
16
|
+
### 4.4.2 (2020-12-29)
|
17
|
+
* Use new powershell if available to enhance WSL support ([#176](https://github.com/titusfortner/webdrivers/issues/176),
|
18
|
+
[#186](https://github.com/titusfortner/webdrivers/pull/186)). Thanks, [G-Rath](https://github.com/G-Rath) and
|
19
|
+
[131](https://github.com/131)!
|
20
|
+
* Update rubocop version (development dependency only) ([#178](https://github.com/titusfortner/webdrivers/pull/178)).
|
21
|
+
Thanks, [utkarsh2102](https://github.com/utkarsh2102)!
|
22
|
+
* Replace `git ls-files` with `dir` in the gemspec for better Debian support ([#179](https://github.com/titusfortner/webdrivers/pull/179),
|
23
|
+
[#184](https://github.com/titusfortner/webdrivers/issues/184)).
|
24
|
+
Thanks again, [utkarsh2102](https://github.com/utkarsh2102)!
|
25
|
+
* Update README with `require: false` when adding gem to Gemfile ([#183](https://github.com/titusfortner/webdrivers/pull/183)).
|
26
|
+
* Make WSL detection more generic ([#187](https://github.com/titusfortner/webdrivers/pull/187)).
|
27
|
+
[rbclark](https://github.com/rbclark)!
|
28
|
+
|
1
29
|
### 4.4.1 (2020-06-01)
|
2
30
|
* Do not include binstubs used for troubleshooting only. Fixes [#174](https://github.com/titusfortner/webdrivers/issues/174).
|
3
31
|
|
4
32
|
### 4.4.0 (2020-05-31)
|
5
|
-
* Implement support for `chromedriver` in Windows Subsystem for Linux (WSL) v1 ([#172](https://github.com/titusfortner/webdrivers/issues/172)).
|
33
|
+
* Implement support for `chromedriver` in Windows Subsystem for Linux (WSL) v1 ([#172](https://github.com/titusfortner/webdrivers/issues/172)).
|
34
|
+
Thanks, [G-Rath](https://github.com/G-Rath)!
|
6
35
|
* Chrome/Edgedriver - Fix [#171](https://github.com/titusfortner/webdrivers/issues/171) by making sure the cached
|
7
36
|
driver build version matches the browser build version before using it.
|
8
37
|
* Chrome/Edgedriver - Driver version check now matches the driver and browser `major.minor.build` versions instead of just
|
data/LICENSE.txt
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
(The MIT License)
|
2
|
-
|
3
|
-
Copyright (c) 2017-2019: Titus Fortner
|
4
|
-
Copyright (c) 2019: Lakshya Kapoor, Thomas Walpole
|
5
|
-
|
6
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
7
|
-
a copy of this software and associated documentation files (the
|
8
|
-
'Software'), to deal in the Software without restriction, including
|
9
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
10
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
-
permit persons to whom the Software is furnished to do so, subject to
|
12
|
-
the following conditions:
|
13
|
-
|
14
|
-
The above copyright notice and this permission notice shall be
|
15
|
-
included in all copies or substantial portions of the Software.
|
16
|
-
|
17
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
18
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
20
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
21
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
22
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
23
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
1
|
+
(The MIT License)
|
2
|
+
|
3
|
+
Copyright (c) 2017-2019: Titus Fortner
|
4
|
+
Copyright (c) 2019: Lakshya Kapoor, Thomas Walpole
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
7
|
+
a copy of this software and associated documentation files (the
|
8
|
+
'Software'), to deal in the Software without restriction, including
|
9
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
10
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
+
permit persons to whom the Software is furnished to do so, subject to
|
12
|
+
the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
20
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
21
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
22
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
23
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# Webdrivers
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/webdrivers)
|
4
|
-
|
5
|
-
[](https://ci.appveyor.com/project/titusfortner/webdrivers/branch/master)
|
4
|
+

|
6
5
|
|
7
6
|
Run Selenium tests more easily with automatic installation and updates for all supported webdrivers.
|
8
7
|
|
@@ -15,13 +14,16 @@ Run Selenium tests more easily with automatic installation and updates for all s
|
|
15
14
|
* [IEDriverServer](https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver)
|
16
15
|
* [msedgedriver](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)
|
17
16
|
|
18
|
-
Works on macOS, Linux, Windows, and Windows Subsystem for Linux (WSL) v1.
|
17
|
+
Works on macOS, Linux, Windows, and Windows Subsystem for Linux (WSL) v1 and v2. And do see the browser and OS specific
|
18
|
+
notes at the bottom.
|
19
19
|
|
20
20
|
## Usage
|
21
21
|
|
22
22
|
In your Gemfile:
|
23
23
|
|
24
|
-
|
24
|
+
```ruby
|
25
|
+
gem 'webdrivers', '~> 4.0', require: false
|
26
|
+
```
|
25
27
|
|
26
28
|
In your project:
|
27
29
|
|
@@ -194,7 +196,7 @@ The logging level can be configured for debugging purpose:
|
|
194
196
|
Webdrivers.logger.level = :DEBUG
|
195
197
|
```
|
196
198
|
|
197
|
-
### Browser Specific Notes
|
199
|
+
### Browser & OS Specific Notes
|
198
200
|
|
199
201
|
#### Chrome/Chromium
|
200
202
|
|
@@ -219,7 +221,7 @@ variable.
|
|
219
221
|
This is also required if Google Chrome is not installed in its
|
220
222
|
[default location](https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver).
|
221
223
|
|
222
|
-
|
224
|
+
#### Chrome on Heroku
|
223
225
|
|
224
226
|
Follow the specific instructions [here](https://github.com/titusfortner/webdrivers/wiki/Heroku-buildpack-google-chrome) if you're using `heroku-buildpack-google-chrome`.
|
225
227
|
|
@@ -231,6 +233,27 @@ section apply to this browser as well.
|
|
231
233
|
|
232
234
|
Please note that `msedgedriver` requires `selenium-webdriver` v4.
|
233
235
|
|
236
|
+
#### WSLv1 support
|
237
|
+
|
238
|
+
While WSLv1 is not designed to run headful applications like Chrome, it can run exes; as such when found to be running
|
239
|
+
in WSL, `webdrivers` will use Chrome on the Windows filesystem.
|
240
|
+
|
241
|
+
It's recommended that you install the new PowerShell (PS7) to avoid [a known issue](https://github.com/microsoft/terminal/issues/367)
|
242
|
+
with the console font being changed when calling the old PowerShell (PS5).
|
243
|
+
|
244
|
+
#### WSLv2 support
|
245
|
+
|
246
|
+
Webdrivers will detect WSLv2 as running on Linux and use Chrome on the Linux filesystem.
|
247
|
+
|
248
|
+
WSLv2 doesn't support connecting to host ports out of the box, so it isn't possible to connect to Chromedriver on
|
249
|
+
Windows without extra configurations, see: https://github.com/microsoft/WSL/issues/4619. The simplest way to use
|
250
|
+
Chromedriver with WSLv2 is to run Chrome headless on Linux.
|
251
|
+
|
252
|
+
#### Chrome and Edge on Apple M1 (`arm64`)
|
253
|
+
|
254
|
+
If you're switching from Intel to M1, you'll have to manually delete the existing Intel (`mac64`) driver before the
|
255
|
+
M1 (`arm64`) build can be downloaded. Otherwise, you'll get an error: `Bad CPU type in executable - ~/.webdrivers/chromedriver (Errno::E086)`
|
256
|
+
|
234
257
|
## Wiki
|
235
258
|
|
236
259
|
Please see the [wiki](https://github.com/titusfortner/webdrivers/wiki)
|
@@ -88,7 +88,7 @@ module Webdrivers
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def linux_location
|
91
|
-
return wsl_location if System.
|
91
|
+
return wsl_location if System.wsl_v1?
|
92
92
|
|
93
93
|
directories = %w[/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /snap/bin /opt/google/chrome]
|
94
94
|
files = %w[google-chrome chrome chromium chromium-browser]
|
@@ -104,6 +104,8 @@ module Webdrivers
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def win_version(location)
|
107
|
+
System.call("pwsh.exe -command \"(Get-ItemProperty '#{location}').VersionInfo.ProductVersion\"")&.strip
|
108
|
+
rescue StandardError
|
107
109
|
System.call("powershell.exe \"(Get-ItemProperty '#{location}').VersionInfo.ProductVersion\"")&.strip
|
108
110
|
end
|
109
111
|
|
@@ -112,7 +114,7 @@ module Webdrivers
|
|
112
114
|
end
|
113
115
|
|
114
116
|
def linux_version(location)
|
115
|
-
return wsl_version(location) if System.
|
117
|
+
return wsl_version(location) if System.wsl_v1?
|
116
118
|
|
117
119
|
System.call(location, '--product-version')&.strip
|
118
120
|
end
|
@@ -73,36 +73,57 @@ module Webdrivers
|
|
73
73
|
else
|
74
74
|
msg
|
75
75
|
end
|
76
|
-
|
77
|
-
|
76
|
+
rescue NetworkError
|
77
|
+
"#{msg} A network issue is preventing determination of latest chromedriver release."
|
78
78
|
end
|
79
79
|
|
80
80
|
msg = "#{msg} Please set `Webdrivers::Chromedriver.required_version = <desired driver version>` "\
|
81
|
-
'to a known chromedriver version: https://chromedriver.storage.googleapis.com/index.html'
|
82
|
-
|
81
|
+
'to a known chromedriver version: https://chromedriver.storage.googleapis.com/index.html'
|
83
82
|
Webdrivers.logger.debug msg
|
84
83
|
raise VersionError, msg
|
85
84
|
end
|
86
85
|
|
87
86
|
def file_name
|
88
|
-
System.platform == 'win' || System.
|
87
|
+
System.platform == 'win' || System.wsl_v1? ? 'chromedriver.exe' : 'chromedriver'
|
88
|
+
end
|
89
|
+
|
90
|
+
def apple_m1_compatible?(driver_version)
|
91
|
+
if System.apple_m1_architecture? && driver_version >= normalize_version('87.0.4280.88')
|
92
|
+
Webdrivers.logger.debug 'chromedriver version is Apple M1 compatible.'
|
93
|
+
return true
|
94
|
+
end
|
95
|
+
|
96
|
+
Webdrivers.logger.debug 'chromedriver version is NOT Apple M1 compatible. Required >= 87.0.4280.88'
|
97
|
+
false
|
89
98
|
end
|
90
99
|
|
91
100
|
def download_url
|
92
101
|
return @download_url if @download_url
|
93
102
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
url = "#{base_url}/#{version}/chromedriver_#{file_name}.zip"
|
103
|
+
driver_version = if required_version == EMPTY_VERSION
|
104
|
+
latest_version
|
105
|
+
else
|
106
|
+
normalize_version(required_version)
|
107
|
+
end
|
108
|
+
filename = driver_filename(driver_version)
|
109
|
+
url = "#{base_url}/#{driver_version}/chromedriver_#{filename}.zip"
|
102
110
|
Webdrivers.logger.debug "chromedriver URL: #{url}"
|
103
111
|
@download_url = url
|
104
112
|
end
|
105
113
|
|
114
|
+
def driver_filename(driver_version)
|
115
|
+
if System.platform == 'win' || System.wsl_v1?
|
116
|
+
'win32'
|
117
|
+
elsif System.platform == 'linux'
|
118
|
+
'linux64'
|
119
|
+
elsif System.platform == 'mac'
|
120
|
+
apple_arch = apple_m1_compatible?(driver_version) ? '_m1' : ''
|
121
|
+
"mac64#{apple_arch}"
|
122
|
+
else
|
123
|
+
raise 'Failed to determine driver filename to download for your OS.'
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
106
127
|
# Returns major.minor.build version from the currently installed chromedriver version
|
107
128
|
#
|
108
129
|
# @example
|
@@ -24,15 +24,15 @@ module Webdrivers
|
|
24
24
|
private
|
25
25
|
|
26
26
|
def user_defined_location
|
27
|
-
if Selenium::WebDriver::
|
28
|
-
Webdrivers.logger.debug "Selenium::WebDriver::
|
29
|
-
return Selenium::WebDriver::
|
27
|
+
if Selenium::WebDriver::Edge.path
|
28
|
+
Webdrivers.logger.debug "Selenium::WebDriver::Edge.path: #{Selenium::WebDriver::Edge.path}"
|
29
|
+
return Selenium::WebDriver::Edge.path
|
30
30
|
end
|
31
31
|
|
32
|
-
return if ENV['
|
32
|
+
return if ENV['WD_EDGE_PATH'].nil?
|
33
33
|
|
34
|
-
Webdrivers.logger.debug "
|
35
|
-
ENV['
|
34
|
+
Webdrivers.logger.debug "WD_EDGE_PATH: #{ENV['WD_EDGE_PATH']}"
|
35
|
+
ENV['WD_EDGE_PATH']
|
36
36
|
end
|
37
37
|
|
38
38
|
def win_location
|
@@ -69,6 +69,17 @@ module Webdrivers
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def linux_location
|
72
|
+
# directories = %w[/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /snap/bin /opt/google/chrome]
|
73
|
+
# files = %w[microsoft-edge] # Based on Microsoft Edge 89.0.760.0 dev
|
74
|
+
#
|
75
|
+
# directories.each do |dir|
|
76
|
+
# files.each do |file|
|
77
|
+
# option = "#{dir}/#{file}"
|
78
|
+
# return option if File.exist?(option)
|
79
|
+
# end
|
80
|
+
# end
|
81
|
+
#
|
82
|
+
# nil
|
72
83
|
raise 'Default location not yet known'
|
73
84
|
end
|
74
85
|
|
@@ -26,10 +26,6 @@ module Webdrivers
|
|
26
26
|
'https://msedgedriver.azureedge.net/'
|
27
27
|
end
|
28
28
|
|
29
|
-
def remove
|
30
|
-
super
|
31
|
-
end
|
32
|
-
|
33
29
|
private
|
34
30
|
|
35
31
|
def latest_point_release(version)
|
@@ -58,8 +54,8 @@ module Webdrivers
|
|
58
54
|
else
|
59
55
|
msg
|
60
56
|
end
|
61
|
-
|
62
|
-
|
57
|
+
rescue NetworkError
|
58
|
+
"#{msg} A network issue is preventing determination of latest msedgedriver release."
|
63
59
|
end
|
64
60
|
|
65
61
|
"#{msg} Please set `Webdrivers::Edgedriver.required_version = <desired driver version>` "\
|
@@ -70,17 +66,44 @@ module Webdrivers
|
|
70
66
|
System.platform == 'win' ? 'msedgedriver.exe' : 'msedgedriver'
|
71
67
|
end
|
72
68
|
|
69
|
+
def apple_m1_compatible?(driver_version)
|
70
|
+
if System.apple_m1_architecture? && driver_version >= normalize_version('87.0.669.0')
|
71
|
+
Webdrivers.logger.debug 'msedgedriver version is Apple M1 compatible.'
|
72
|
+
return true
|
73
|
+
end
|
74
|
+
|
75
|
+
Webdrivers.logger.debug 'msedgedriver version is NOT Apple M1 compatible. Required >= 87.0.669.0'
|
76
|
+
false
|
77
|
+
end
|
78
|
+
|
79
|
+
# def linux_compatible?(driver_version)
|
80
|
+
# System.platform == 'linux' && driver_version >= normalize_version('89.0.731.0')
|
81
|
+
# end
|
82
|
+
|
83
|
+
def driver_filename(driver_version)
|
84
|
+
if System.platform == 'win' || System.wsl_v1?
|
85
|
+
"win#{System.bitsize}" # 32 or 64-bit
|
86
|
+
# elsif linux_compatible?(driver_version)
|
87
|
+
# 'linux64'
|
88
|
+
elsif System.platform == 'mac'
|
89
|
+
# Determine M1 or Intel architecture
|
90
|
+
apple_arch = apple_m1_compatible?(driver_version) ? 'arm' : 'mac'
|
91
|
+
"#{apple_arch}64"
|
92
|
+
else
|
93
|
+
raise 'Failed to determine driver filename to download for your OS.'
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
73
97
|
def download_url
|
74
98
|
return @download_url if @download_url
|
75
99
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
url = "#{base_url}/#{version}/edgedriver_#{file_name}.zip"
|
100
|
+
driver_version = if required_version == EMPTY_VERSION
|
101
|
+
latest_version
|
102
|
+
else
|
103
|
+
normalize_version(required_version)
|
104
|
+
end
|
105
|
+
filename = driver_filename(driver_version)
|
106
|
+
url = "#{base_url}/#{driver_version}/edgedriver_#{filename}.zip"
|
84
107
|
Webdrivers.logger.debug "msedgedriver URL: #{url}"
|
85
108
|
@download_url = url
|
86
109
|
end
|
@@ -88,19 +111,4 @@ module Webdrivers
|
|
88
111
|
end
|
89
112
|
end
|
90
113
|
|
91
|
-
|
92
|
-
if ::Selenium::WebDriver::Service.respond_to? :driver_path=
|
93
|
-
::Selenium::WebDriver::EdgeChrome::Service.driver_path = proc { ::Webdrivers::Edgedriver.update }
|
94
|
-
else
|
95
|
-
# v3.141.0 and lower
|
96
|
-
module Selenium
|
97
|
-
module WebDriver
|
98
|
-
module EdgeChrome
|
99
|
-
def self.driver_path
|
100
|
-
@driver_path ||= Webdrivers::Edgedriver.update
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
114
|
+
::Selenium::WebDriver::Edge::Service.driver_path = proc { ::Webdrivers::Edgedriver.update }
|
data/lib/webdrivers/iedriver.rb
CHANGED
@@ -44,16 +44,19 @@ module Webdrivers
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def downloads
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
ds = items.each_with_object({}) do |item, hash|
|
51
|
-
key = normalize_version item[/([^_]+)\.zip/, 1]
|
52
|
-
hash[key] = "#{base_url}#{item}"
|
47
|
+
ds = download_manifest.each_with_object({}) do |item, hash|
|
48
|
+
version = normalize_version item[/\.?([^_]+)\.zip/, 1]
|
49
|
+
hash[version] = "#{base_url}#{item}"
|
53
50
|
end
|
54
51
|
Webdrivers.logger.debug "Versions now located on downloads site: #{ds.keys}"
|
55
52
|
ds
|
56
53
|
end
|
54
|
+
|
55
|
+
def download_manifest
|
56
|
+
doc = Nokogiri::XML.parse(Network.get(base_url))
|
57
|
+
items = doc.css('Key').collect(&:text)
|
58
|
+
items.select { |item| item.include?('IEDriverServer_Win32') }
|
59
|
+
end
|
57
60
|
end
|
58
61
|
end
|
59
62
|
end
|
data/lib/webdrivers/network.rb
CHANGED
data/lib/webdrivers/system.rb
CHANGED
@@ -148,8 +148,18 @@ module Webdrivers
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
|
+
def apple_m1_architecture?
|
152
|
+
if platform == 'mac' && RUBY_PLATFORM.include?('arm64-darwin')
|
153
|
+
Webdrivers.logger.debug 'Apple architecture: M1 (arm64-darwin)'
|
154
|
+
return true
|
155
|
+
end
|
156
|
+
|
157
|
+
Webdrivers.logger.debug 'Apple architecture: Intel (mac64)'
|
158
|
+
false
|
159
|
+
end
|
160
|
+
|
151
161
|
# @return [TrueClass, FalseClass]
|
152
|
-
def
|
162
|
+
def wsl_v1?
|
153
163
|
platform == 'linux' && File.open('/proc/version').read.include?('Microsoft')
|
154
164
|
end
|
155
165
|
|
data/lib/webdrivers/version.rb
CHANGED
@@ -52,7 +52,7 @@ describe Webdrivers::ChromeFinder do
|
|
52
52
|
before do
|
53
53
|
skip "The current platform cannot be WSL, as it's not Linux" unless Selenium::WebDriver::Platform.linux?
|
54
54
|
|
55
|
-
allow(Webdrivers::System).to receive(:
|
55
|
+
allow(Webdrivers::System).to receive(:wsl_v1?).and_return(true)
|
56
56
|
allow(Webdrivers::System).to receive(:to_wsl_path).and_return('')
|
57
57
|
allow(Webdrivers::System).to receive(:to_win32_path).and_return('')
|
58
58
|
end
|
@@ -6,9 +6,7 @@ describe Webdrivers::EdgeFinder do
|
|
6
6
|
let(:edge_finder) { described_class }
|
7
7
|
|
8
8
|
before(:all) do # rubocop:disable RSpec/BeforeAfterAll
|
9
|
-
|
10
|
-
# have Chromium based Edge support
|
11
|
-
unless defined?(Selenium::WebDriver::EdgeChrome)
|
9
|
+
if Selenium::WebDriver::VERSION[0].to_i < 4
|
12
10
|
skip "The current selenium-webdriver doesn't include Chromium based Edge support"
|
13
11
|
end
|
14
12
|
end
|
@@ -20,8 +18,8 @@ describe Webdrivers::EdgeFinder do
|
|
20
18
|
end
|
21
19
|
|
22
20
|
context 'when the user provides a path to the Edge binary' do
|
23
|
-
it 'uses Selenium::WebDriver::
|
24
|
-
Selenium::WebDriver::
|
21
|
+
it 'uses Selenium::WebDriver::Edge.path when it is defined' do
|
22
|
+
Selenium::WebDriver::Edge.path = edge_finder.location
|
25
23
|
locations = %i[win_location mac_location linux_location]
|
26
24
|
allow(edge_finder).to receive_messages(locations)
|
27
25
|
|
@@ -29,8 +27,8 @@ describe Webdrivers::EdgeFinder do
|
|
29
27
|
locations.each { |loc| expect(edge_finder).not_to have_received(loc) }
|
30
28
|
end
|
31
29
|
|
32
|
-
it "uses ENV['
|
33
|
-
allow(ENV).to receive(:[]).with('
|
30
|
+
it "uses ENV['WD_EDGE_PATH'] when it is defined" do
|
31
|
+
allow(ENV).to receive(:[]).with('WD_EDGE_PATH').and_return(edge_finder.location)
|
34
32
|
locations = %i[win_location mac_location linux_location]
|
35
33
|
allow(edge_finder).to receive_messages(locations)
|
36
34
|
|
@@ -38,11 +36,11 @@ describe Webdrivers::EdgeFinder do
|
|
38
36
|
locations.each { |loc| expect(edge_finder).not_to have_received(loc) }
|
39
37
|
end
|
40
38
|
|
41
|
-
it 'uses Selenium::WebDriver::
|
42
|
-
Selenium::WebDriver::
|
43
|
-
allow(ENV).to receive(:[]).with('
|
39
|
+
it 'uses Selenium::WebDriver::Edge.path over WD_EDGE_PATH' do
|
40
|
+
Selenium::WebDriver::Edge.path = edge_finder.location
|
41
|
+
allow(ENV).to receive(:[]).with('WD_EDGE_PATH').and_return('my_wd_chrome_path')
|
44
42
|
expect(edge_finder.version).not_to be_nil
|
45
|
-
expect(ENV).not_to have_received(:[]).with('
|
43
|
+
expect(ENV).not_to have_received(:[]).with('WD_EDGE_PATH')
|
46
44
|
end
|
47
45
|
end
|
48
46
|
|
@@ -6,9 +6,7 @@ describe Webdrivers::Edgedriver do
|
|
6
6
|
let(:edgedriver) { described_class }
|
7
7
|
|
8
8
|
before(:all) do # rubocop:disable RSpec/BeforeAfterAll
|
9
|
-
|
10
|
-
# have Chromium based Edge support
|
11
|
-
unless defined?(Selenium::WebDriver::EdgeChrome)
|
9
|
+
if Selenium::WebDriver::VERSION[0].to_i < 4
|
12
10
|
skip "The current selenium-webdriver doesn't include Chromium based Edge support"
|
13
11
|
end
|
14
12
|
end
|
@@ -2,36 +2,42 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
wsl_proc_contents = [
|
6
|
-
'Linux version 4.4.0-18362-Microsoft',
|
7
|
-
'(Microsoft@Microsoft.com)',
|
8
|
-
'(gcc version 5.4.0 (GCC) )',
|
9
|
-
'#836-Microsoft',
|
10
|
-
'Mon May 05 16:04:00 PST 2020'
|
11
|
-
].join ' '
|
12
|
-
|
13
5
|
describe Webdrivers::System do
|
14
|
-
describe '#
|
15
|
-
|
16
|
-
|
6
|
+
describe '#wsl_v1?' do
|
7
|
+
subject { described_class.wsl_v1? }
|
8
|
+
|
9
|
+
before do
|
10
|
+
allow(described_class).to receive(:platform).and_return(platform)
|
11
|
+
allow(File).to receive(:open).with('/proc/version').and_return(StringIO.new(wsl_proc_version_contents))
|
12
|
+
end
|
17
13
|
|
18
|
-
|
19
|
-
|
14
|
+
let(:platform) { 'linux' }
|
15
|
+
let(:wsl_proc_version_contents) { '' }
|
20
16
|
|
21
|
-
|
17
|
+
context 'when the current platform is linux and WSL version is 1' do
|
18
|
+
let(:wsl_proc_version_contents) do
|
19
|
+
'Linux version 4.4.0-18362-Microsoft'\
|
20
|
+
'(Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) )'\
|
21
|
+
'#836-Microsoft Mon May 05 16:04:00 PST 2020'
|
22
22
|
end
|
23
|
+
|
24
|
+
it { is_expected.to eq true }
|
23
25
|
end
|
24
26
|
|
25
|
-
context 'when the current platform is
|
26
|
-
|
27
|
+
context 'when the current platform is linux and WSL version is 2' do
|
28
|
+
let(:wsl_proc_version_contents) do
|
29
|
+
'Linux version 4.19.84-microsoft-standard '\
|
30
|
+
'(oe-user@oe-host) (gcc version 8.2.0 (GCC)) '\
|
31
|
+
'#1 SMP Wed Nov 13 11:44:37 UTC 2019'
|
32
|
+
end
|
27
33
|
|
28
|
-
it
|
29
|
-
|
34
|
+
it { is_expected.to eq false }
|
35
|
+
end
|
30
36
|
|
31
|
-
|
37
|
+
context 'when the current platform is mac' do
|
38
|
+
let(:platform) { 'mac' }
|
32
39
|
|
33
|
-
|
34
|
-
end
|
40
|
+
it { is_expected.to eq false }
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdrivers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Titus Fortner
|
8
8
|
- Lakshya Kapoor
|
9
9
|
- Thomas Walpole
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-08-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ffi
|
@@ -60,14 +60,28 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '0.
|
63
|
+
version: '0.89'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: '0.
|
70
|
+
version: '0.89'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: rubocop-packaging
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.5.0
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 0.5.0
|
71
85
|
- !ruby/object:Gem::Dependency
|
72
86
|
name: rubocop-performance
|
73
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +102,14 @@ dependencies:
|
|
88
102
|
requirements:
|
89
103
|
- - "~>"
|
90
104
|
- !ruby/object:Gem::Version
|
91
|
-
version: '1.
|
105
|
+
version: '1.42'
|
92
106
|
type: :development
|
93
107
|
prerelease: false
|
94
108
|
version_requirements: !ruby/object:Gem::Requirement
|
95
109
|
requirements:
|
96
110
|
- - "~>"
|
97
111
|
- !ruby/object:Gem::Version
|
98
|
-
version: '1.
|
112
|
+
version: '1.42'
|
99
113
|
- !ruby/object:Gem::Dependency
|
100
114
|
name: simplecov
|
101
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,19 +181,9 @@ executables: []
|
|
167
181
|
extensions: []
|
168
182
|
extra_rdoc_files: []
|
169
183
|
files:
|
170
|
-
- ".github/ISSUE_TEMPLATE.md"
|
171
|
-
- ".gitignore"
|
172
|
-
- ".rubocop.yml"
|
173
|
-
- ".travis.yml"
|
174
184
|
- CHANGELOG.md
|
175
|
-
- Gemfile
|
176
185
|
- LICENSE.txt
|
177
186
|
- README.md
|
178
|
-
- Rakefile
|
179
|
-
- appveyor.yml
|
180
|
-
- bin/console
|
181
|
-
- bin/setup
|
182
|
-
- gemfiles/Gemfile.edge
|
183
187
|
- lib/webdrivers.rb
|
184
188
|
- lib/webdrivers/Rakefile
|
185
189
|
- lib/webdrivers/chrome_finder.rb
|
@@ -208,18 +212,15 @@ files:
|
|
208
212
|
- spec/webdrivers/system_spec.rb
|
209
213
|
- spec/webdrivers/webdrivers_spec.rb
|
210
214
|
- spec/webdrivers_proxy_support_spec.rb
|
211
|
-
- support/install_jruby.ps1
|
212
|
-
- support/install_msedge.ps1
|
213
|
-
- webdrivers.gemspec
|
214
215
|
homepage: https://github.com/titusfortner/webdrivers
|
215
216
|
licenses:
|
216
217
|
- MIT
|
217
218
|
metadata:
|
218
219
|
bug_tracker_uri: https://github.com/titusfortner/webdrivers/issues
|
219
220
|
changelog_uri: https://github.com/titusfortner/webdrivers/blob/master/CHANGELOG.md
|
220
|
-
documentation_uri: https://www.rubydoc.info/gems/webdrivers/4.
|
221
|
-
source_code_uri: https://github.com/titusfortner/webdrivers/tree/v4.
|
222
|
-
post_install_message:
|
221
|
+
documentation_uri: https://www.rubydoc.info/gems/webdrivers/4.6.1
|
222
|
+
source_code_uri: https://github.com/titusfortner/webdrivers/tree/v4.6.1
|
223
|
+
post_install_message:
|
223
224
|
rdoc_options: []
|
224
225
|
require_paths:
|
225
226
|
- lib
|
@@ -234,8 +235,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
235
|
- !ruby/object:Gem::Version
|
235
236
|
version: '0'
|
236
237
|
requirements: []
|
237
|
-
rubygems_version: 3.
|
238
|
-
signing_key:
|
238
|
+
rubygems_version: 3.2.22
|
239
|
+
signing_key:
|
239
240
|
specification_version: 4
|
240
241
|
summary: Easy download and use of browser drivers.
|
241
|
-
test_files:
|
242
|
+
test_files:
|
243
|
+
- spec/spec_helper.rb
|
244
|
+
- spec/webdrivers/chrome_finder_spec.rb
|
245
|
+
- spec/webdrivers/chromedriver_spec.rb
|
246
|
+
- spec/webdrivers/edge_finder_spec.rb
|
247
|
+
- spec/webdrivers/edgedriver_spec.rb
|
248
|
+
- spec/webdrivers/geckodriver_spec.rb
|
249
|
+
- spec/webdrivers/i_edriver_spec.rb
|
250
|
+
- spec/webdrivers/system_spec.rb
|
251
|
+
- spec/webdrivers/webdrivers_spec.rb
|
252
|
+
- spec/webdrivers_proxy_support_spec.rb
|
data/.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#### Summary
|
2
|
-
Short summary of the bug or feature request.
|
3
|
-
|
4
|
-
#### Debug Info
|
5
|
-
Please provide the following information for bug reports:
|
6
|
-
|
7
|
-
* Webdrivers version:
|
8
|
-
* Ruby version:
|
9
|
-
* Operating system / CI Environment:
|
10
|
-
* Browser and version:
|
11
|
-
|
12
|
-
#### Expected Behavior
|
13
|
-
What you expect to happen.
|
14
|
-
|
15
|
-
#### Actual Behavior
|
16
|
-
What is actually happening: Error message, stack trace, DEBUG log if applicable (set `Webdrivers.logger.level = :DEBUG` after you require webdrivers)
|
data/.gitignore
DELETED
data/.rubocop.yml
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
AllCops:
|
2
|
-
TargetRubyVersion: 2.4.10
|
3
|
-
|
4
|
-
require:
|
5
|
-
- rubocop-rspec
|
6
|
-
- rubocop-performance
|
7
|
-
|
8
|
-
Layout/SpaceInsideHashLiteralBraces:
|
9
|
-
EnforcedStyle: no_space
|
10
|
-
|
11
|
-
Layout/EndOfLine:
|
12
|
-
EnforcedStyle: lf
|
13
|
-
|
14
|
-
Layout/LineLength:
|
15
|
-
Max: 120
|
16
|
-
IgnoredPatterns:
|
17
|
-
- '\s+# rubocop:disable'
|
18
|
-
|
19
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
20
|
-
Enabled: true
|
21
|
-
|
22
|
-
Layout/SpaceAroundOperators:
|
23
|
-
Enabled: true
|
24
|
-
|
25
|
-
Layout/SpaceAroundMethodCallOperator:
|
26
|
-
Enabled: true
|
27
|
-
|
28
|
-
Lint/DeprecatedOpenSSLConstant:
|
29
|
-
Enabled: true
|
30
|
-
|
31
|
-
Lint/RaiseException:
|
32
|
-
Enabled: true
|
33
|
-
|
34
|
-
Lint/StructNewOverride:
|
35
|
-
Enabled: true
|
36
|
-
|
37
|
-
Lint/MixedRegexpCaptureTypes:
|
38
|
-
Enabled: true
|
39
|
-
|
40
|
-
Lint/ScriptPermission:
|
41
|
-
Enabled: false
|
42
|
-
|
43
|
-
Metrics/MethodLength:
|
44
|
-
Max: 20
|
45
|
-
|
46
|
-
Metrics/BlockLength:
|
47
|
-
Exclude:
|
48
|
-
- 'spec/**/*'
|
49
|
-
- 'lib/webdrivers/tasks/*.rake'
|
50
|
-
- 'webdrivers.gemspec'
|
51
|
-
|
52
|
-
Metrics/ClassLength:
|
53
|
-
Max: 116
|
54
|
-
Exclude:
|
55
|
-
- 'lib/webdrivers/system.rb'
|
56
|
-
|
57
|
-
Metrics/CyclomaticComplexity:
|
58
|
-
Max: 8
|
59
|
-
|
60
|
-
Metrics/AbcSize:
|
61
|
-
Max: 16
|
62
|
-
Exclude:
|
63
|
-
- 'lib/webdrivers/chromedriver.rb'
|
64
|
-
|
65
|
-
Style/Documentation:
|
66
|
-
Enabled: false
|
67
|
-
|
68
|
-
Style/FrozenStringLiteralComment:
|
69
|
-
Enabled: false
|
70
|
-
|
71
|
-
Style/ExponentialNotation:
|
72
|
-
Enabled: false
|
73
|
-
|
74
|
-
Style/HashEachMethods:
|
75
|
-
Enabled: true
|
76
|
-
|
77
|
-
Style/HashTransformKeys:
|
78
|
-
Enabled: false
|
79
|
-
|
80
|
-
Style/HashTransformValues:
|
81
|
-
Enabled: false
|
82
|
-
|
83
|
-
Style/SlicingWithRange:
|
84
|
-
Enabled: false
|
85
|
-
|
86
|
-
Style/RedundantRegexpCharacterClass:
|
87
|
-
Enabled: true
|
88
|
-
|
89
|
-
Style/RedundantRegexpEscape:
|
90
|
-
Enabled: false
|
91
|
-
|
92
|
-
RSpec/ExampleLength:
|
93
|
-
Enabled: false
|
94
|
-
|
95
|
-
RSpec/MultipleExpectations:
|
96
|
-
Enabled: false
|
data/.travis.yml
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
addons:
|
4
|
-
apt:
|
5
|
-
packages:
|
6
|
-
- chromium-browser
|
7
|
-
- libgconf-2-4
|
8
|
-
chrome: stable
|
9
|
-
script: bundle exec rake $RAKE_TASK
|
10
|
-
before_install:
|
11
|
-
- gem update --system -N
|
12
|
-
- gem install bundler -N
|
13
|
-
matrix:
|
14
|
-
include:
|
15
|
-
- rvm: 2.4
|
16
|
-
env: RAKE_TASK=spec
|
17
|
-
- rvm: 2.5
|
18
|
-
env: RAKE_TASK=spec
|
19
|
-
- rvm: 2.6
|
20
|
-
env: RAKE_TASK=spec
|
21
|
-
- rvm: 2.7
|
22
|
-
os: osx
|
23
|
-
env: RAKE_TASK=spec
|
24
|
-
- rvm: 2.7
|
25
|
-
env: RAKE_TASK=rubocop
|
26
|
-
- rvm: jruby-9.2.11.1
|
27
|
-
jdk: openjdk8
|
28
|
-
env: RAKE_TASK=spec
|
29
|
-
- rvm: 2.7
|
30
|
-
env: RAKE_TASK=spec
|
31
|
-
gemfile: gemfiles/Gemfile.edge
|
32
|
-
os: osx
|
33
|
-
osx_image: xcode11.3
|
34
|
-
addons:
|
35
|
-
chrome: stable
|
36
|
-
homebrew:
|
37
|
-
taps: homebrew/cask-versions
|
38
|
-
casks:
|
39
|
-
- microsoft-edge
|
40
|
-
allow_failures:
|
41
|
-
- gemfile: gemfiles/Gemfile.edge
|
data/Gemfile
DELETED
data/Rakefile
DELETED
data/appveyor.yml
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
build: off
|
2
|
-
cache:
|
3
|
-
- vendor/bundle
|
4
|
-
image:
|
5
|
-
- Visual Studio 2019
|
6
|
-
environment:
|
7
|
-
matrix:
|
8
|
-
- RUBY_VERSION: Ruby24-x64
|
9
|
-
RUBY_BIN: ruby
|
10
|
-
RAKE_TASK: rubocop
|
11
|
-
SCRIPT_CONTEXT: bundle exec
|
12
|
-
- RUBY_VERSION: Ruby24-x64
|
13
|
-
RUBY_BIN: ruby
|
14
|
-
RAKE_TASK: spec
|
15
|
-
SCRIPT_CONTEXT: bundle exec
|
16
|
-
- RUBY_VERSION: Ruby25-x64
|
17
|
-
RUBY_BIN: ruby
|
18
|
-
RAKE_TASK: spec
|
19
|
-
SCRIPT_CONTEXT: bundle exec
|
20
|
-
- RUBY_VERSION: Ruby26-x64
|
21
|
-
RUBY_BIN: ruby
|
22
|
-
RAKE_TASK: spec
|
23
|
-
SCRIPT_CONTEXT: bundle exec
|
24
|
-
- RUBY_VERSION: jruby-9.2.11.1
|
25
|
-
RUBY_BIN: jruby
|
26
|
-
RAKE_TASK: spec
|
27
|
-
SCRIPT_CONTEXT: jruby -G -S
|
28
|
-
- RUBY_VERSION: Ruby26-x64
|
29
|
-
RUBY_BIN: ruby
|
30
|
-
RAKE_TASK: spec
|
31
|
-
SCRIPT_CONTEXT: bundle exec
|
32
|
-
BUNDLE_GEMFILE: gemfiles/Gemfile.edge
|
33
|
-
install:
|
34
|
-
- ps: if ($env:RUBY_BIN -eq 'jruby') { support\install_jruby.ps1 }
|
35
|
-
- ps: support\install_msedge.ps1
|
36
|
-
- set PATH=C:\%RUBY_VERSION%\bin;%PATH%
|
37
|
-
- '%RUBY_BIN% -S gem update --system -N'
|
38
|
-
- '%RUBY_BIN% -S gem install bundler -N'
|
39
|
-
- '%RUBY_BIN% -S bundle install'
|
40
|
-
before_test:
|
41
|
-
- '%RUBY_BIN% -v'
|
42
|
-
- '%RUBY_BIN% -S gem -v'
|
43
|
-
- '%RUBY_BIN% -S bundle -v'
|
44
|
-
test_script:
|
45
|
-
- '%SCRIPT_CONTEXT% rake %RAKE_TASK%'
|
data/bin/console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'bundler/setup'
|
5
|
-
require 'webdrivers'
|
6
|
-
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
9
|
-
|
10
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
-
# require "pry"
|
12
|
-
# Pry.start
|
13
|
-
|
14
|
-
require 'irb'
|
15
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
data/gemfiles/Gemfile.edge
DELETED
data/support/install_jruby.ps1
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
$downloadLink = "https://repo1.maven.org/maven2/org/jruby/jruby-dist/9.2.11.1/jruby-dist-9.2.11.1-bin.zip"
|
2
|
-
$zipPath = "c:\jruby-dist-9.2.11.1-bin.zip"
|
3
|
-
|
4
|
-
Write-Host "Installing $($env:RUBY_VERSION)" -ForegroundColor cyan
|
5
|
-
appveyor DownloadFile "$($downloadLink)" -FileName "$($zipPath)"
|
6
|
-
7z x "$($zipPath)" -oc:\ -y # Unzip to c:\
|
7
|
-
Write-Host "JRuby installed.`n" -ForegroundColor green
|
data/support/install_msedge.ps1
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
$downloadLink = "https://go.microsoft.com/fwlink/?linkid=2108834&Channel=Stable&language=en"
|
2
|
-
$installerFile = "C:\MicrosoftEdgeSetup.exe"
|
3
|
-
|
4
|
-
# Note: We're purposely skipping the -Wait flag in Start-Process.
|
5
|
-
# This is because Edge auto-launches after the setup is done and
|
6
|
-
# Start-Process continues to indefinitely wait on that process.
|
7
|
-
Write-Host "Downloading Microsoft Edge (Stable)..." -ForegroundColor cyan
|
8
|
-
Invoke-WebRequest $downloadLink -OutFile $installerFile
|
9
|
-
Write-Host "Installing..." -ForegroundColor cyan
|
10
|
-
Start-Process $installerFile
|
11
|
-
Write-Host "Microsoft Edge (Stable) installed.`n" -ForegroundColor green
|
data/webdrivers.gemspec
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
lib = File.expand_path('lib', __dir__)
|
4
|
-
$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
|
5
|
-
require 'webdrivers/version'
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.name = 'webdrivers'
|
9
|
-
s.version = Webdrivers::VERSION
|
10
|
-
s.required_ruby_version = '>= 2.4.0'
|
11
|
-
s.authors = ['Titus Fortner', 'Lakshya Kapoor', 'Thomas Walpole']
|
12
|
-
s.email = %w[titusfortner@gmail.com kapoorlakshya@gmail.com]
|
13
|
-
s.homepage = 'https://github.com/titusfortner/webdrivers'
|
14
|
-
s.summary = 'Easy download and use of browser drivers.'
|
15
|
-
s.description = 'Run Selenium tests more easily with install and updates for all supported webdrivers.'
|
16
|
-
s.licenses = ['MIT']
|
17
|
-
|
18
|
-
s.metadata = {
|
19
|
-
'bug_tracker_uri' => 'https://github.com/titusfortner/webdrivers/issues',
|
20
|
-
'changelog_uri' => 'https://github.com/titusfortner/webdrivers/blob/master/CHANGELOG.md',
|
21
|
-
'documentation_uri' => "https://www.rubydoc.info/gems/webdrivers/#{Webdrivers::VERSION}",
|
22
|
-
'source_code_uri' => "https://github.com/titusfortner/webdrivers/tree/v#{Webdrivers::VERSION}"
|
23
|
-
}
|
24
|
-
|
25
|
-
s.files = `git ls-files`.split("\n")
|
26
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
27
|
-
s.executables = []
|
28
|
-
s.require_paths = ['lib']
|
29
|
-
|
30
|
-
s.add_development_dependency 'ffi', '~> 1.0' # For selenium-webdriver on Windows
|
31
|
-
s.add_development_dependency 'rake', '~> 12.0'
|
32
|
-
s.add_development_dependency 'rspec', '~> 3.0'
|
33
|
-
s.add_development_dependency 'rubocop', '~>0.66'
|
34
|
-
s.add_development_dependency 'rubocop-performance'
|
35
|
-
s.add_development_dependency 'rubocop-rspec', '~>1.32'
|
36
|
-
s.add_development_dependency 'simplecov', '~>0.16'
|
37
|
-
|
38
|
-
s.add_runtime_dependency 'nokogiri', '~> 1.6'
|
39
|
-
s.add_runtime_dependency 'rubyzip', '>= 1.3.0'
|
40
|
-
s.add_runtime_dependency 'selenium-webdriver', '>= 3.0', '< 4.0'
|
41
|
-
end
|