aranha-selenium 0.13.0 → 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: 152c6519e39e5d3fca131dcae37c5809b2de71e7bc0948a1712895dfc6817c53
4
- data.tar.gz: c687b992ac4a06a0adb3dc255f81f195a99b4adbba331dc52a6a6931cd41d755
3
+ metadata.gz: 84a1574369d362da959a63ff1af76bd97f39dea090f9cdf495b6d3a9ca1c7ba6
4
+ data.tar.gz: 67cbfad2f7f0eddcf3ebe58fa6b4f733010fc8f3d8c298fa44264fee56b6d91e
5
5
  SHA512:
6
- metadata.gz: b589490c2fbf06e0f3e572caff2c8a56c650899dc0b78e4f6c911af2ba10c6cb2dad40cf6f0edb6c6c834d5ffea566ae06745981fd1a7a1058e95ccf81ba5681
7
- data.tar.gz: 4b83ccedda3ae287770d90eeba8145ad76ea0a54b5b926ef6ac32984bf8591acc54e692283156348c91aa84934f71000419e472e2af4fb5b4a5ae52d88ef3803
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,51 +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
28
- end
29
-
30
- def driver_name
31
- (options[:driver] || default_driver_name).to_s
32
- end
33
-
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)"
29
+ if driver_name_from_options.present?
30
+ create_specified_driver(driver_name_from_options, options)
31
+ else
32
+ create_unspecified_driver
33
+ end
39
34
  end
40
35
 
41
- def default_driver_name
42
- DRIVERS.each do |driver, executable|
43
- return driver if ::Aranha::Selenium::Executables.send(executable).exist?
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
44
42
  end
45
43
 
46
- raise "No driver found (#{DRIVERS.value.join(', ')})"
44
+ raise "No driver available (Tried: #{DRIVERS.join(', ')})"
47
45
  end
48
46
 
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
47
+ protected
48
+
49
+ attr_writer :driver_name_from_options
55
50
 
56
- require_sub __FILE__
51
+ require_sub __FILE__, require_mode: :kernel
57
52
  end
58
53
  end
59
54
  end
@@ -84,8 +84,6 @@ module Aranha
84
84
  def options
85
85
  @options ||= {}
86
86
  end
87
-
88
- require_sub __FILE__
89
87
  end
90
88
  end
91
89
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/file_info'
4
-
5
3
  require 'tmpdir'
6
4
 
7
5
  module Aranha
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_templates/core_ext'
4
-
5
3
  module Aranha
6
4
  module Selenium
7
5
  class Session < ::SimpleDelegator
@@ -31,8 +29,6 @@ module Aranha
31
29
  def script_fields_arg
32
30
  "{#{fields.map(&:to_js_object).join(', ')}}"
33
31
  end
34
-
35
- require_sub __FILE__
36
32
  end
37
33
  end
38
34
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Selenium
5
- VERSION = '0.13.0'
5
+ VERSION = '0.14.0'
6
6
  end
7
7
  end
@@ -9,3 +9,5 @@ module Aranha
9
9
  end
10
10
 
11
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.0
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-01-19 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.128'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 0.128.5
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.128'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 0.128.5
60
+ version: '0.130'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: eac_templates
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -82,30 +82,36 @@ dependencies:
82
82
  name: rexml
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '3.4'
85
88
  - - ">="
86
89
  - !ruby/object:Gem::Version
87
- version: '0'
90
+ version: 3.4.4
88
91
  type: :runtime
89
92
  prerelease: false
90
93
  version_requirements: !ruby/object:Gem::Requirement
91
94
  requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.4'
92
98
  - - ">="
93
99
  - !ruby/object:Gem::Version
94
- version: '0'
100
+ version: 3.4.4
95
101
  - !ruby/object:Gem::Dependency
96
102
  name: selenium-webdriver
97
103
  requirement: !ruby/object:Gem::Requirement
98
104
  requirements:
99
105
  - - "~>"
100
106
  - !ruby/object:Gem::Version
101
- version: '4.40'
107
+ version: '4.43'
102
108
  type: :runtime
103
109
  prerelease: false
104
110
  version_requirements: !ruby/object:Gem::Requirement
105
111
  requirements:
106
112
  - - "~>"
107
113
  - !ruby/object:Gem::Version
108
- version: '4.40'
114
+ version: '4.43'
109
115
  - !ruby/object:Gem::Dependency
110
116
  name: eac_ruby_gem_support
111
117
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +119,9 @@ dependencies:
113
119
  - - "~>"
114
120
  - !ruby/object:Gem::Version
115
121
  version: '0.12'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 0.12.2
116
125
  type: :development
117
126
  prerelease: false
118
127
  version_requirements: !ruby/object:Gem::Requirement
@@ -120,6 +129,9 @@ dependencies:
120
129
  - - "~>"
121
130
  - !ruby/object:Gem::Version
122
131
  version: '0.12'
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 0.12.2
123
135
  - !ruby/object:Gem::Dependency
124
136
  name: stub_server
125
137
  requirement: !ruby/object:Gem::Requirement
@@ -145,11 +157,11 @@ files:
145
157
  - lib/aranha/selenium/driver_factory.rb
146
158
  - lib/aranha/selenium/driver_factory/base.rb
147
159
  - lib/aranha/selenium/driver_factory/chrome.rb
160
+ - lib/aranha/selenium/driver_factory/create_specified_driver.rb
148
161
  - lib/aranha/selenium/driver_factory/firefox.rb
149
162
  - lib/aranha/selenium/driver_factory/firefox_auto_download_mime_types
150
163
  - lib/aranha/selenium/driver_options.rb
151
164
  - lib/aranha/selenium/driver_options/option.rb
152
- - lib/aranha/selenium/executables.rb
153
165
  - lib/aranha/selenium/session.rb
154
166
  - lib/aranha/selenium/session/downloads.rb
155
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