aranha-selenium 0.13.1 → 0.14.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83e223cc5e459f940502ddb2f8a443761c4fba18c263836f87d2afd2931859cf
4
- data.tar.gz: 1ce7c60721dec9422e34069c35db656fdb239d99f21f907a4475602c1191d7fc
3
+ metadata.gz: 90b0b04d911d9091f8e47f3a22b2e95bbfbf2324498536bdf7b4f36147d76331
4
+ data.tar.gz: 17a834b5e9c49b8b2ce4de8f3bd5e909dd17d3a7c4206e6cce1312f7007bf327
5
5
  SHA512:
6
- metadata.gz: b4933da684ca18e28263ef5f4409cc057975c5426aed37359ec907fdceb30617405e3a817bfee28af7b16f0b71f6cf129c4c4d7b59c49d783389da514f1874f2
7
- data.tar.gz: e6c1c9a3254d5dfc4a23e7f27f140ee00b85fe3bdeb91292c6d1cae3b3279b78dcbaea5152323531f792069c31a169f498d4762e6c53fd804838137610c2851c
6
+ metadata.gz: 8368202b47138bdebf9e1203c2d9846e54f81035a20c80271a59d37398a0cb26dd205f710f5f8347dd6e3a8a56d7a86610973847d0036d0d1ee450eea935f98f
7
+ data.tar.gz: 8daa310be8e541fc40997b56b793a25ce1bfd427b9b0d339d590a95dde49763bfe9f3f0e6b571a64264d84f0c217fd948e9fde3e8a28a5275510fcf0ac383cf6
@@ -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_specified_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
@@ -21,9 +21,9 @@ module Aranha
21
21
  # @param timeout [Integer]
22
22
  # @return [Selenium::WebDriver::Element]
23
23
  # @deprecated Use +element.wait_click+ instead.
24
- def wait_for_click(find_element_args, timeout = nil, &block)
24
+ def wait_for_click(find_element_args, timeout = nil, &)
25
25
  find_element_args = [find_element_args] if find_element_args.is_a?(::Hash)
26
- element(*find_element_args).wait_click(timeout, &block)
26
+ element(*find_element_args).wait_click(timeout, &)
27
27
  end
28
28
 
29
29
  def wait_for_element(find_element_args)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Selenium
5
- VERSION = '0.13.1'
5
+ VERSION = '0.14.1'
6
6
  end
7
7
  end
@@ -1,13 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__
5
-
6
- module Aranha
7
- module Selenium
8
- end
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
5
+ require 'eac_fs'
6
+ require 'eac_templates'
9
7
  end
10
-
11
- require 'aranha'
12
- require 'eac_fs'
13
- require 'eac_templates'
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.1
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-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.20'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.20.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0.20'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.20.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: eac_fs
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -31,6 +37,9 @@ dependencies:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
39
  version: '0.20'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.20.2
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,46 +47,43 @@ dependencies:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
49
  version: '0.20'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.20.2
41
53
  - !ruby/object:Gem::Dependency
42
- name: eac_ruby_utils
54
+ name: eac_ruby_base1
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '0.129'
59
+ version: '0.1'
48
60
  - - ">="
49
61
  - !ruby/object:Gem::Version
50
- version: 0.129.1
62
+ version: 0.1.1
51
63
  type: :runtime
52
64
  prerelease: false
53
65
  version_requirements: !ruby/object:Gem::Requirement
54
66
  requirements:
55
67
  - - "~>"
56
68
  - !ruby/object:Gem::Version
57
- version: '0.129'
69
+ version: '0.1'
58
70
  - - ">="
59
71
  - !ruby/object:Gem::Version
60
- version: 0.129.1
72
+ version: 0.1.1
61
73
  - !ruby/object:Gem::Dependency
62
74
  name: eac_templates
63
75
  requirement: !ruby/object:Gem::Requirement
64
76
  requirements:
65
77
  - - "~>"
66
78
  - !ruby/object:Gem::Version
67
- version: '0.8'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.8.3
79
+ version: '0.9'
71
80
  type: :runtime
72
81
  prerelease: false
73
82
  version_requirements: !ruby/object:Gem::Requirement
74
83
  requirements:
75
84
  - - "~>"
76
85
  - !ruby/object:Gem::Version
77
- version: '0.8'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.8.3
86
+ version: '0.9'
81
87
  - !ruby/object:Gem::Dependency
82
88
  name: rexml
83
89
  requirement: !ruby/object:Gem::Requirement
@@ -104,34 +110,28 @@ dependencies:
104
110
  requirements:
105
111
  - - "~>"
106
112
  - !ruby/object:Gem::Version
107
- version: '4.40'
113
+ version: '4.44'
108
114
  type: :runtime
109
115
  prerelease: false
110
116
  version_requirements: !ruby/object:Gem::Requirement
111
117
  requirements:
112
118
  - - "~>"
113
119
  - !ruby/object:Gem::Version
114
- version: '4.40'
120
+ version: '4.44'
115
121
  - !ruby/object:Gem::Dependency
116
122
  name: eac_ruby_gem_support
117
123
  requirement: !ruby/object:Gem::Requirement
118
124
  requirements:
119
125
  - - "~>"
120
126
  - !ruby/object:Gem::Version
121
- version: '0.12'
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: 0.12.1
127
+ version: '0.14'
125
128
  type: :development
126
129
  prerelease: false
127
130
  version_requirements: !ruby/object:Gem::Requirement
128
131
  requirements:
129
132
  - - "~>"
130
133
  - !ruby/object:Gem::Version
131
- version: '0.12'
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: 0.12.1
134
+ version: '0.14'
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
@@ -185,7 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - ">="
187
187
  - !ruby/object:Gem::Version
188
- version: '2.7'
188
+ version: '3.2'
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - ">="
@@ -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