aranha-selenium 0.13.1 → 0.14.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83e223cc5e459f940502ddb2f8a443761c4fba18c263836f87d2afd2931859cf
4
- data.tar.gz: 1ce7c60721dec9422e34069c35db656fdb239d99f21f907a4475602c1191d7fc
3
+ metadata.gz: 84a1574369d362da959a63ff1af76bd97f39dea090f9cdf495b6d3a9ca1c7ba6
4
+ data.tar.gz: 67cbfad2f7f0eddcf3ebe58fa6b4f733010fc8f3d8c298fa44264fee56b6d91e
5
5
  SHA512:
6
- metadata.gz: b4933da684ca18e28263ef5f4409cc057975c5426aed37359ec907fdceb30617405e3a817bfee28af7b16f0b71f6cf129c4c4d7b59c49d783389da514f1874f2
7
- data.tar.gz: e6c1c9a3254d5dfc4a23e7f27f140ee00b85fe3bdeb91292c6d1cae3b3279b78dcbaea5152323531f792069c31a169f498d4762e6c53fd804838137610c2851c
6
+ metadata.gz: 64d4ba285e322f00658dd57322a32c2e5b687d85d26f79c61aaafc13d37cfb3bfb4a011aed89ae6e218742645f69ffb45bce515c94bd12026d9f301656613265
7
+ data.tar.gz: 6c66a97c362e7cde017559d8a59307f883fbb9a52be1dc8b408283fe08738636962a9cc832bbbf5684baf0574fe34eb6a2f45bbef07bb437396cde5c11ca7c29
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aranha
4
+ module Selenium
5
+ class DriverFactory
6
+ class CreateSpecifiedDriver
7
+ acts_as_instance_method
8
+ common_constructor :factory, :driver_name, :options
9
+
10
+ # @return [Aranha::Selenium::DriverFactory::Base]
11
+ def result
12
+ driver_class.new(driver_options).build
13
+ end
14
+
15
+ protected
16
+
17
+ # @return [Class<Aranha::Selenium::DriverFactory::Base>]
18
+ def driver_class
19
+ driver_class_name = driver_name.to_s.classify
20
+ Aranha::Selenium::DriverFactory.const_get(driver_class_name)
21
+ rescue NameError
22
+ raise "Unknown Aranha Selenium driver: \"#{driver_name}\" " \
23
+ "(Class \"Aranha::Selenium::DriverFactory::#{driver_class_name}\" not found)"
24
+ end
25
+
26
+ # @return [Aranha::Selenium::DriverOptions]
27
+ def driver_options
28
+ ::Aranha::Selenium::DriverOptions.default.merge(options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -9,49 +9,46 @@ module Aranha
9
9
  end
10
10
  end
11
11
 
12
- DRIVERS = {
13
- chrome: :chromedriver,
14
- firefox: :geckodriver
15
- }.freeze
12
+ DRIVERS = %i[chrome firefox].freeze
13
+
14
+ attr_reader :driver_name_from_options
16
15
 
17
16
  # @!attribute [r] options
18
- # @return [ActiveSupport::HashWithIndifferentAccess]
17
+ # @return [Aranha::Selenium::DriverOptions]
19
18
 
20
19
  # @!method initialize(options)
21
20
  # @param options [ActiveSupport::HashWithIndifferentAccess]
22
21
  common_constructor :options do
23
- self.options = options.with_indifferent_access.freeze
22
+ self.options = options.with_indifferent_access
23
+ self.driver_name_from_options = options.delete(:driver)
24
+ self.options = ::Aranha::Selenium::DriverOptions.assert(options)
24
25
  end
25
26
 
27
+ # @return [Aranha::Selenium::DriverFactory::Base]
26
28
  def create_driver
27
- driver_class.new(driver_options).build
29
+ if driver_name_from_options.present?
30
+ create_specified_driver(driver_name_from_options, options)
31
+ else
32
+ create_unspecified_driver
33
+ end
28
34
  end
29
35
 
30
- def driver_name
31
- (options[:driver] || default_driver_name).to_s
32
- end
36
+ # @return [Aranha::Selenium::DriverFactory::Base]
37
+ def create_unspecified_driver
38
+ DRIVERS.each do |e|
39
+ return create_specific_driver(e, options)
40
+ rescue Selenium::WebDriver::Error::SessionNotCreatedError
41
+ # do nothing
42
+ end
33
43
 
34
- def driver_class
35
- Aranha::Selenium::DriverFactory.const_get(driver_name.classify)
36
- rescue NameError
37
- raise "Unknown Aranha Selenium driver: \"#{driver_name}\" " \
38
- "(Class \"Aranha::Selenium::DriverFactory::#{driver_name.classify}\" not found)"
44
+ raise "No driver available (Tried: #{DRIVERS.join(', ')})"
39
45
  end
40
46
 
41
- def default_driver_name
42
- DRIVERS.each do |driver, executable|
43
- return driver if ::Aranha::Selenium::Executables.send(executable).exist?
44
- end
47
+ protected
45
48
 
46
- raise "No driver found (#{DRIVERS.value.join(', ')})"
47
- end
49
+ attr_writer :driver_name_from_options
48
50
 
49
- # @return [Aranha::Selenium::DriverOptions]
50
- def driver_options
51
- ::Aranha::Selenium::DriverOptions.default.merge(
52
- ::Aranha::Selenium::DriverOptions.assert(options.except(:driver))
53
- )
54
- end
51
+ require_sub __FILE__, require_mode: :kernel
55
52
  end
56
53
  end
57
54
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Selenium
5
- VERSION = '0.13.1'
5
+ VERSION = '0.14.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aranha-selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-16 00:00:00.000000000 Z
11
+ date: 2026-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha
@@ -31,6 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.20'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.20.1
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,26 +41,23 @@ dependencies:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
43
  version: '0.20'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.20.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: eac_ruby_utils
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '0.129'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 0.129.1
53
+ version: '0.130'
51
54
  type: :runtime
52
55
  prerelease: false
53
56
  version_requirements: !ruby/object:Gem::Requirement
54
57
  requirements:
55
58
  - - "~>"
56
59
  - !ruby/object:Gem::Version
57
- version: '0.129'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 0.129.1
60
+ version: '0.130'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: eac_templates
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -104,14 +104,14 @@ dependencies:
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: '4.40'
107
+ version: '4.43'
108
108
  type: :runtime
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - "~>"
113
113
  - !ruby/object:Gem::Version
114
- version: '4.40'
114
+ version: '4.43'
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: eac_ruby_gem_support
117
117
  requirement: !ruby/object:Gem::Requirement
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: '0.12'
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 0.12.1
124
+ version: 0.12.2
125
125
  type: :development
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '0.12'
132
132
  - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: 0.12.1
134
+ version: 0.12.2
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: stub_server
137
137
  requirement: !ruby/object:Gem::Requirement
@@ -157,11 +157,11 @@ files:
157
157
  - lib/aranha/selenium/driver_factory.rb
158
158
  - lib/aranha/selenium/driver_factory/base.rb
159
159
  - lib/aranha/selenium/driver_factory/chrome.rb
160
+ - lib/aranha/selenium/driver_factory/create_specified_driver.rb
160
161
  - lib/aranha/selenium/driver_factory/firefox.rb
161
162
  - lib/aranha/selenium/driver_factory/firefox_auto_download_mime_types
162
163
  - lib/aranha/selenium/driver_options.rb
163
164
  - lib/aranha/selenium/driver_options/option.rb
164
- - lib/aranha/selenium/executables.rb
165
165
  - lib/aranha/selenium/session.rb
166
166
  - lib/aranha/selenium/session/downloads.rb
167
167
  - lib/aranha/selenium/session/element.rb
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aranha
4
- module Selenium
5
- module Executables
6
- class << self
7
- enable_simple_cache
8
-
9
- def env
10
- ::EacRubyUtils::Envs.local
11
- end
12
-
13
- private
14
-
15
- %w[chromedriver geckodriver].each do |program|
16
- define_method("#{program.underscore}_uncached") do
17
- env.executable(program, '--version')
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end