aranha-selenium 0.5.0 → 0.6.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7aceb03be8d423ca084646615d2869147f8ae89137f8c753732dabebde6032f5
|
4
|
+
data.tar.gz: f39cd164dd36c4f333693a8d33ebadce8a5a13de0a70c25ce039714ace68c8b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6caca3383682a545705954abbc971b07aa3a259ca03bc1c9be2d29b26274cf410d31fb67bf87ea408d1361a3bc9d748a2b0dcc90416662b91c63bf1d9794a218
|
7
|
+
data.tar.gz: 35a436b59edc41e266a5553ea8ffb495329d3b74ccd2ea4634a034a8cd8a659d39adaccf77bf14f5671bbb431a8feedded5f2c06926345b3aaa8bb81b1f21f10
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/selenium/driver_factory'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Aranha
|
7
|
+
module Selenium
|
8
|
+
class Defaults
|
9
|
+
class Option
|
10
|
+
common_constructor :owner, :key, :sanitizer, default: [nil] do
|
11
|
+
self.key = key.to_sym
|
12
|
+
end
|
13
|
+
attr_accessor :user_value
|
14
|
+
|
15
|
+
# @return [String]
|
16
|
+
def constant_name
|
17
|
+
"default_#{key}".upcase
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Object]
|
21
|
+
def default_value
|
22
|
+
owner.class.const_get(constant_name)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [String]
|
26
|
+
def envvar_name
|
27
|
+
"aranha_selenium_#{key}".upcase
|
28
|
+
end
|
29
|
+
|
30
|
+
# @return [Object]
|
31
|
+
def value
|
32
|
+
sanitized_value do
|
33
|
+
next ENV.fetch(envvar_name) if ENV.key?(envvar_name)
|
34
|
+
next user_value unless user_value.nil?
|
35
|
+
|
36
|
+
default_value
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def sanitized_value(&block)
|
43
|
+
r = block.call
|
44
|
+
sanitizer.present? ? sanitizer.call(r) : r
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/boolean'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'tmpdir'
|
6
|
+
|
7
|
+
module Aranha
|
8
|
+
module Selenium
|
9
|
+
class Defaults
|
10
|
+
include ::Singleton
|
11
|
+
|
12
|
+
DEFAULT_DOWNLOADS_DIR = ::File.join(::Dir.tmpdir, 'aranha_downloads_dir')
|
13
|
+
DEFAULT_ACCEPT_INSECURE_CERTS = false
|
14
|
+
DEFAULT_HEADLESS = false
|
15
|
+
DEFAULT_USER_AGENT = nil
|
16
|
+
|
17
|
+
%w[accept_insecure_certs downloads_dir headless user_agent].each do |key|
|
18
|
+
define_method(key) { send("#{key}_option").value }
|
19
|
+
define_method("#{key}=") { |user_value| send("#{key}_option").user_value = user_value }
|
20
|
+
define_method("#{key}_option") do
|
21
|
+
options[key] ||= ::Aranha::Selenium::Defaults::Option.new(self, key)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Aranha::Selenium::Defaults::Option]
|
26
|
+
def headless_option
|
27
|
+
options['headless'] ||= ::Aranha::Selenium::Defaults::Option.new(
|
28
|
+
self, 'headless', ->(v) { ::EacRubyUtils::Boolean.parse(v) }
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def options
|
35
|
+
@options ||= {}
|
36
|
+
end
|
37
|
+
|
38
|
+
require_sub __FILE__
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,44 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require 'selenium-webdriver'
|
6
|
-
require 'tmpdir'
|
3
|
+
require 'aranha/selenium/defaults'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
7
5
|
|
8
6
|
module Aranha
|
9
7
|
module Selenium
|
10
8
|
class DriverFactory
|
11
9
|
class Base
|
12
|
-
|
13
|
-
|
14
|
-
DEFAULT_HEADLESS = false
|
15
|
-
DEFAULT_USER_AGENT = nil
|
16
|
-
|
17
|
-
class << self
|
18
|
-
attr_writer :default_accept_insecure_certs, :default_downloads_dir, :default_headless,
|
19
|
-
:default_user_agent
|
20
|
-
|
21
|
-
def default_downloads_dir
|
22
|
-
@default_downloads_dir || DEFAULT_DOWNLOADS_DIR
|
23
|
-
end
|
24
|
-
|
25
|
-
def default_accept_insecure_certs
|
26
|
-
@default_accept_insecure_certs || DEFAULT_ACCEPT_INSECURE_CERTS
|
27
|
-
end
|
28
|
-
|
29
|
-
def default_headless
|
30
|
-
@default_headless || DEFAULT_HEADLESS
|
31
|
-
end
|
32
|
-
|
33
|
-
def default_user_agent
|
34
|
-
@default_user_agent || DEFAULT_USER_AGENT
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
attr_reader :options
|
39
|
-
|
40
|
-
def initialize(options)
|
41
|
-
@options = options.with_indifferent_access.freeze
|
10
|
+
common_constructor :options do
|
11
|
+
self.options = options.with_indifferent_access.freeze
|
42
12
|
end
|
43
13
|
|
44
14
|
def build
|
@@ -75,7 +45,7 @@ module Aranha
|
|
75
45
|
if options.key?(key)
|
76
46
|
options.fetch(key)
|
77
47
|
else
|
78
|
-
::Aranha::Selenium::
|
48
|
+
::Aranha::Selenium::Defaults.instance.send(key)
|
79
49
|
end
|
80
50
|
end
|
81
51
|
end
|
@@ -15,8 +15,8 @@ module Aranha
|
|
15
15
|
WAIT_DEFAULT_TIMEOUT
|
16
16
|
end
|
17
17
|
|
18
|
-
def wait_for_click(find_element_args)
|
19
|
-
wait.until do
|
18
|
+
def wait_for_click(find_element_args, timeout = nil)
|
19
|
+
wait(timeout).until do
|
20
20
|
element = find_element(find_element_args)
|
21
21
|
element ? element_click(element) : nil
|
22
22
|
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.
|
4
|
+
version: 0.6.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:
|
11
|
+
date: 2023-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_ruby_utils
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.117'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.
|
22
|
+
version: 0.117.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0.
|
29
|
+
version: '0.117'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
32
|
+
version: 0.117.1
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: selenium-webdriver
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,6 +72,8 @@ extra_rdoc_files: []
|
|
72
72
|
files:
|
73
73
|
- Gemfile
|
74
74
|
- lib/aranha/selenium.rb
|
75
|
+
- lib/aranha/selenium/defaults.rb
|
76
|
+
- lib/aranha/selenium/defaults/option.rb
|
75
77
|
- lib/aranha/selenium/driver_factory.rb
|
76
78
|
- lib/aranha/selenium/driver_factory/base.rb
|
77
79
|
- lib/aranha/selenium/driver_factory/chrome.rb
|