dvla-browser-drivers 3.1.0 → 3.1.2
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 +9 -0
- data/README.md +4 -2
- data/dvla-browser-drivers.gemspec +0 -1
- data/lib/dvla/browser/drivers/meta_drivers.rb +30 -26
- data/lib/dvla/browser/drivers/version.rb +1 -1
- data/lib/dvla/browser/drivers.rb +0 -3
- metadata +2 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be6fbb0dea13bdb8c0cffdf3c2e865a707792e92ad0779d27ee9e9ca69c31d37
|
|
4
|
+
data.tar.gz: f17d454ef4b54fcf99adffa8bb9d62872a03740bf54671923183245b33bad027
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 41730ce1a0217eb34d5ae46722d6387bac90dbbfe869bce8a9ba5f60f32a54290cab759327fdb870da109d8e5c8daa1eb4c4e730b98190c261d3b40904775ba2
|
|
7
|
+
data.tar.gz: 16988c0eb23835442a45f68f07d9d2c0132980888b4cc983600d33e34ea654a0a4c57df7bde4b41a1ebb0f241e5f1422d066584da93a5da0f09ecd9956219f4f
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
# [3.1.2] - 2026-01-19
|
|
6
|
+
|
|
7
|
+
- Remove dvla-herodotus dependency
|
|
8
|
+
|
|
9
|
+
# [3.1.1] - 2025-12-12
|
|
10
|
+
|
|
11
|
+
- Add selenium_safari config
|
|
12
|
+
- Add optional binary string for Selenium
|
|
13
|
+
|
|
5
14
|
# [3.1.0] - 2025-12-10
|
|
6
15
|
|
|
7
16
|
- Add websocket URL to enable BiDi functionality via Selenium
|
data/README.md
CHANGED
|
@@ -29,10 +29,10 @@ Once installed, you are able to use any pre-configured browser driver from the l
|
|
|
29
29
|
|---------------------------|----------------------------------------------------|
|
|
30
30
|
| selenium_chrome | `DVLA::Browser::Drivers.selenium_chrome` |
|
|
31
31
|
| headless_selenium_chrome | `DVLA::Browser::Drivers.headless_selenium_chrome` |
|
|
32
|
-
| selenium_edge | `DVLA::Browser::Drivers.selenium_edge` |
|
|
33
|
-
| headless_selenium_edge | `DVLA::Browser::Drivers.headless_selenium_edge` |
|
|
34
32
|
| selenium_firefox | `DVLA::Browser::Drivers.selenium_firefox` |
|
|
35
33
|
| headless_selenium_firefox | `DVLA::Browser::Drivers.headless_selenium_firefox` |
|
|
34
|
+
| selenium_edge | `DVLA::Browser::Drivers.selenium_edge` |
|
|
35
|
+
| selenium_safari | `DVLA::Browser::Drivers.selenium_safari` |
|
|
36
36
|
|
|
37
37
|
### Non-selenium drivers
|
|
38
38
|
|
|
@@ -43,6 +43,8 @@ Once installed, you are able to use any pre-configured browser driver from the l
|
|
|
43
43
|
| apparition | `DVLA::Browser::Drivers.apparition` |
|
|
44
44
|
| headless_apparition | `DVLA::Browser::Drivers.headless_apparition` |
|
|
45
45
|
|
|
46
|
+
**Note:** Safari and Edge do not support headless mode.
|
|
47
|
+
|
|
46
48
|
---
|
|
47
49
|
|
|
48
50
|
### Default configuration
|
|
@@ -48,6 +48,5 @@ Gem::Specification.new do |spec|
|
|
|
48
48
|
spec.add_dependency 'apparition', '>= 0.6'
|
|
49
49
|
spec.add_dependency 'capybara', '>= 3.37'
|
|
50
50
|
spec.add_dependency 'cuprite', '>= 0.14'
|
|
51
|
-
spec.add_dependency 'dvla-herodotus', '>= 2.0'
|
|
52
51
|
spec.add_dependency 'selenium-webdriver', '>= 4.0'
|
|
53
52
|
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
module DVLA
|
|
2
2
|
module Browser
|
|
3
3
|
module Drivers
|
|
4
|
-
DRIVER_REGEX = /^(?:(?<headless>
|
|
4
|
+
DRIVER_REGEX = /^(?:(?<headless>headless_)(?<driver>selenium_(?<browser>chrome|firefox)|cuprite|apparition)|(?<driver_no_headless>selenium_(?<browser_no_headless>chrome|firefox|edge|safari)|cuprite|apparition))$/
|
|
5
5
|
|
|
6
6
|
OTHER_ACCEPTED_PARAMS = %i[timeout browser_options save_path remote].freeze
|
|
7
7
|
OTHER_DRIVERS = %i[cuprite apparition].freeze
|
|
8
|
-
SELENIUM_ACCEPTED_PARAMS = %i[remote additional_arguments additional_preferences].freeze
|
|
9
|
-
SELENIUM_DRIVERS = %i[selenium_chrome selenium_firefox selenium_edge].freeze
|
|
8
|
+
SELENIUM_ACCEPTED_PARAMS = %i[remote additional_arguments additional_preferences binary].freeze
|
|
9
|
+
SELENIUM_DRIVERS = %i[selenium_chrome selenium_firefox selenium_edge selenium_safari].freeze
|
|
10
10
|
|
|
11
11
|
# Creates methods in the Drivers module that matches the DRIVER_REGEX
|
|
12
12
|
# These methods will register a Driver for use by Capybara in a test pack
|
|
@@ -19,35 +19,39 @@ module DVLA
|
|
|
19
19
|
def self.method_missing(method, *args, **kwargs, &)
|
|
20
20
|
if (matches = method.match(DRIVER_REGEX))
|
|
21
21
|
headless = matches[:headless].is_a? String
|
|
22
|
-
driver = matches[:driver]
|
|
22
|
+
driver = matches[:driver]&.to_sym || matches[:driver_no_headless]&.to_sym
|
|
23
|
+
browser_match = matches[:browser] || matches[:browser_no_headless]
|
|
23
24
|
|
|
24
25
|
case driver
|
|
25
26
|
when *SELENIUM_DRIVERS
|
|
26
|
-
browser =
|
|
27
|
+
browser = browser_match.to_sym
|
|
27
28
|
|
|
28
29
|
kwargs.each do |key, _value|
|
|
29
|
-
|
|
30
|
+
puts "Key: '#{key}' will be ignored | Use one from: '#{SELENIUM_ACCEPTED_PARAMS}'" unless SELENIUM_ACCEPTED_PARAMS.include?(key)
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
::Capybara.register_driver method do |app|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
options.
|
|
38
|
-
options.add_argument('--
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
34
|
+
if browser == :safari
|
|
35
|
+
options = Selenium::WebDriver::Safari::Options.new
|
|
36
|
+
else
|
|
37
|
+
options = Object.const_get("Selenium::WebDriver::#{browser.to_s.capitalize}::Options").new(web_socket_url: true)
|
|
38
|
+
options.binary = kwargs[:binary] if kwargs[:binary]
|
|
39
|
+
options.add_argument('--disable-dev-shm-usage')
|
|
40
|
+
|
|
41
|
+
if headless
|
|
42
|
+
options.add_argument('--headless')
|
|
43
|
+
options.add_argument('--no-sandbox')
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
kwargs[:additional_arguments] && kwargs[:additional_arguments].each do |argument|
|
|
47
|
+
argument.prepend('--') unless argument.start_with?('--')
|
|
48
|
+
options.add_argument(argument)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
kwargs[:additional_preferences] && kwargs[:additional_preferences].each do |preference|
|
|
52
|
+
key, value = preference.first
|
|
53
|
+
options.add_preference(key, value)
|
|
54
|
+
end
|
|
51
55
|
end
|
|
52
56
|
|
|
53
57
|
driver_browser = kwargs[:remote] ? :remote : browser
|
|
@@ -58,7 +62,7 @@ module DVLA
|
|
|
58
62
|
end
|
|
59
63
|
else
|
|
60
64
|
kwargs.each do |key, _value|
|
|
61
|
-
|
|
65
|
+
puts "Key: '#{key}' will be ignored | Use one from: '#{OTHER_ACCEPTED_PARAMS}'" unless OTHER_ACCEPTED_PARAMS.include?(key)
|
|
62
66
|
end
|
|
63
67
|
|
|
64
68
|
browser_options = { 'no-sandbox': nil, 'disable-smooth-scrolling': true }
|
|
@@ -78,7 +82,7 @@ module DVLA
|
|
|
78
82
|
end
|
|
79
83
|
end
|
|
80
84
|
|
|
81
|
-
|
|
85
|
+
puts "Driver set to: '#{method}'"
|
|
82
86
|
|
|
83
87
|
::Capybara.javascript_driver = method
|
|
84
88
|
::Capybara.default_driver = method
|
data/lib/dvla/browser/drivers.rb
CHANGED
|
@@ -3,11 +3,8 @@ require_relative 'drivers/version'
|
|
|
3
3
|
|
|
4
4
|
require 'capybara/apparition'
|
|
5
5
|
require 'capybara/cuprite'
|
|
6
|
-
require 'dvla/herodotus'
|
|
7
6
|
require 'selenium-webdriver'
|
|
8
7
|
|
|
9
8
|
module DVLA
|
|
10
9
|
class Error < StandardError; end
|
|
11
|
-
|
|
12
|
-
LOG = DVLA::Herodotus.logger('browser-drivers')
|
|
13
10
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dvla-browser-drivers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.1.
|
|
4
|
+
version: 3.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Driver and Vehicle Licensing Agency (DVLA)
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-01-22 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: apparition
|
|
@@ -53,20 +53,6 @@ dependencies:
|
|
|
53
53
|
- - ">="
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
55
|
version: '0.14'
|
|
56
|
-
- !ruby/object:Gem::Dependency
|
|
57
|
-
name: dvla-herodotus
|
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
|
59
|
-
requirements:
|
|
60
|
-
- - ">="
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: '2.0'
|
|
63
|
-
type: :runtime
|
|
64
|
-
prerelease: false
|
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
-
requirements:
|
|
67
|
-
- - ">="
|
|
68
|
-
- !ruby/object:Gem::Version
|
|
69
|
-
version: '2.0'
|
|
70
56
|
- !ruby/object:Gem::Dependency
|
|
71
57
|
name: selenium-webdriver
|
|
72
58
|
requirement: !ruby/object:Gem::Requirement
|