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 +4 -4
- data/lib/aranha/selenium/driver_factory/create_specified_driver.rb +33 -0
- data/lib/aranha/selenium/driver_factory.rb +24 -29
- data/lib/aranha/selenium/driver_options.rb +0 -2
- data/lib/aranha/selenium/session/downloads.rb +0 -2
- data/lib/aranha/selenium/session/form_request.rb +0 -4
- data/lib/aranha/selenium/version.rb +1 -1
- data/lib/aranha/selenium.rb +2 -0
- metadata +27 -15
- data/lib/aranha/selenium/executables.rb +0 -23
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 84a1574369d362da959a63ff1af76bd97f39dea090f9cdf495b6d3a9ca1c7ba6
|
|
4
|
+
data.tar.gz: 67cbfad2f7f0eddcf3ebe58fa6b4f733010fc8f3d8c298fa44264fee56b6d91e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
14
|
-
|
|
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 [
|
|
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
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
44
|
+
raise "No driver available (Tried: #{DRIVERS.join(', ')})"
|
|
47
45
|
end
|
|
48
46
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
@@ -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
|
data/lib/aranha/selenium.rb
CHANGED
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.
|
|
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-
|
|
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.
|
|
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.
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
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
|