aranha-selenium 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b77cef3090b92e53523e8b58ca223c3f3d507d3f389fcb93b5ea14293761ffa4
4
- data.tar.gz: f7c4ad1976d059fda2b14ea3634575ca1e8a3c32233f00f51bfe0727865a4a0d
3
+ metadata.gz: 7aceb03be8d423ca084646615d2869147f8ae89137f8c753732dabebde6032f5
4
+ data.tar.gz: f39cd164dd36c4f333693a8d33ebadce8a5a13de0a70c25ce039714ace68c8b3
5
5
  SHA512:
6
- metadata.gz: 68e0c97869bfdf83a45fbcdc3d04eda5987148b85954657289e8ab40f8025f5fb508e22baef3ef4475fe9037d39c6ded8462dbc6d139d79daac0e1ca0d7ad5c7
7
- data.tar.gz: 987ab2d37efc2c98701485c36b03393640185e8a89fa804a510a4671a1d651ce3dc62fa9f9247deaa9aecd23e65b29e8514ec829a665da40d731679cbf553691
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 'active_support/json'
4
- require 'active_support/core_ext/hash/indifferent_access'
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
- 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
- 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::DriverFactory::Base.send("default_#{key}")
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Selenium
5
- VERSION = '0.5.0'
5
+ VERSION = '0.6.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.5.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: 2022-10-27 00:00:00.000000000 Z
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.106'
19
+ version: '0.117'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.106.1
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.106'
29
+ version: '0.117'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.106.1
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