aranha-selenium 0.1.1 → 0.2.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: 1a11c203152bbdadef5fd1c69429f9a8cd8586342d559f1e157cc48599ba1aae
4
- data.tar.gz: e1f8fde2c0c1476cd5db2657ffd07ee78737d059eb72a772d48329af77a95442
3
+ metadata.gz: b7fc50afe38b2fde3f4762db0b2450ffb1f339312a0085ba6fe14f00e97654d6
4
+ data.tar.gz: 86898571d2eee23c5a2b45aba50f73b4cd08f9bc092825ea793dd35dbd3e7d83
5
5
  SHA512:
6
- metadata.gz: 41d2373a517d2d9169afde51c74904d2de652a900c7c6595f719a67678f8f8a8c6a901a0d78938f1270b59718fab6a4f04f64cd3b951887701531737f6fb19d9
7
- data.tar.gz: b6f53f677c12a86575a263e057c9d076e4837d0b43146e6c3a850975d4405b928fc2d8e8c3656006c43b324528cd04e07e6d882156b030f03098b3c3e2dc0179
6
+ metadata.gz: df1e65290f91144c048dfd3b6e376abc98f3c305c96698ed50517e5bfdc6edef3e098aae5f3ae17dc7a2c937c4fa67e1945ab3343267f979ab1ab5246a590707
7
+ data.tar.gz: 9d39ecb22439f0a3aa0cc60b8c15405a8573b73ddce9ebbc7ea046f08dd04f8318c31e19ca0fa696c0625be3d18849915b0efbbae51665424966477ace78b01c
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_support/json'
3
4
  require 'active_support/core_ext/hash/indifferent_access'
5
+ require 'selenium-webdriver'
4
6
  require 'tmpdir'
5
7
 
6
8
  module Aranha
@@ -55,6 +57,14 @@ module Aranha
55
57
  option_value(:headless)
56
58
  end
57
59
 
60
+ def profile_dir
61
+ options[:profile_dir].to_s
62
+ end
63
+
64
+ def profile_name
65
+ options[:profile_name]
66
+ end
67
+
58
68
  def user_agent
59
69
  option_value(:user_agent)
60
70
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'selenium-webdriver'
4
3
  require 'aranha/selenium/driver_factory/base'
5
4
 
6
5
  module Aranha
@@ -15,14 +14,19 @@ module Aranha
15
14
 
16
15
  def chrome_options
17
16
  r = ::Selenium::WebDriver::Chrome::Options.new
18
- r.add_argument('--ignore-certificate-errors') if accept_insecure_certs?
19
- r.add_argument('--headless') if headless?
20
- r.add_argument('--disable-popup-blocking')
21
- r.add_argument('--disable-translate')
22
- r.add_argument("user-agent=#{user_agent}") if user_agent.present?
17
+ chrome_arguments.each { |arg| r.add_argument(arg) }
23
18
  r.add_preference(:download, prompt_for_download: false, default_directory: downloads_dir)
24
19
  r
25
20
  end
21
+
22
+ def chrome_arguments
23
+ r = %w[--disable-popup-blocking --disable-translate]
24
+ r << '--ignore-certificate-errors' if accept_insecure_certs?
25
+ r << '--headless' if headless?
26
+ r << "--user-agent=#{user_agent}" if user_agent.present?
27
+ r << "--user-data-dir=#{profile_dir}" if profile_dir.present?
28
+ r
29
+ end
26
30
  end
27
31
  end
28
32
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'selenium-webdriver'
4
3
  require 'aranha/selenium/driver_factory/base'
5
4
 
6
5
  module Aranha
@@ -10,10 +9,7 @@ module Aranha
10
9
  def build
11
10
  ::Selenium::WebDriver.for(
12
11
  :firefox,
13
- options: ::Selenium::WebDriver::Firefox::Options.new(
14
- profile: build_profile,
15
- args: build_args
16
- ),
12
+ options: build_options,
17
13
  desired_capabilities: build_capabilities
18
14
  )
19
15
  end
@@ -22,7 +18,7 @@ module Aranha
22
18
 
23
19
  def build_args
24
20
  r = []
25
- r << '-headless' if headless?
21
+ r << '--headless' if headless?
26
22
  r
27
23
  end
28
24
 
@@ -34,16 +30,33 @@ module Aranha
34
30
  end
35
31
  end
36
32
 
37
- def build_profile
38
- r = ::Selenium::WebDriver::Firefox::Profile.new
39
- r['browser.download.dir'] = downloads_dir
40
- r['browser.download.folderList'] = 2
41
- r['browser.helperApps.neverAsk.saveToDisk'] = auto_download_mime_types.join(';')
42
- r['pdfjs.disabled'] = true
33
+ def build_options
34
+ r = ::Selenium::WebDriver::Firefox::Options.new(args: build_args,
35
+ prefs: build_preferences)
36
+ build_profile.if_present { |v| r.profile = v }
37
+ r
38
+ end
39
+
40
+ def build_preferences
41
+ r = {
42
+ 'browser.download.dir' => downloads_dir,
43
+ 'browser.download.folderList' => 2,
44
+ 'browser.helperApps.neverAsk.saveToDisk' => auto_download_mime_types.join(';'),
45
+ 'pdfjs.disabled' => true
46
+ }
43
47
  r['general.useragent.override'] = user_agent if user_agent.present?
44
48
  r
45
49
  end
46
50
 
51
+ def build_profile
52
+ if profile_name.present?
53
+ ::Selenium::WebDriver::Firefox::Profile.from_name(v)
54
+ elsif profile_dir.present?
55
+ ::FileUtils.mkdir_p(profile_dir)
56
+ ::Selenium::WebDriver::Firefox::Profile.new(profile_dir)
57
+ end
58
+ end
59
+
47
60
  def auto_download_mime_types
48
61
  ::File.read(
49
62
  ::File.join(__dir__, 'firefox_auto_download_mime_types')
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Aranha
2
4
  module Selenium
3
- VERSION = '0.1.1'.freeze
5
+ VERSION = '0.2.1'
4
6
  end
5
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.1.1
4
+ version: 0.2.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: 2019-11-05 00:00:00.000000000 Z
11
+ date: 2021-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,12 +44,27 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 3.142.3
47
+ - !ruby/object:Gem::Dependency
48
+ name: eac_ruby_gem_support
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.2'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.2'
47
61
  description:
48
62
  email:
49
63
  executables: []
50
64
  extensions: []
51
65
  extra_rdoc_files: []
52
66
  files:
67
+ - Gemfile
53
68
  - lib/aranha/selenium.rb
54
69
  - lib/aranha/selenium/driver_factory.rb
55
70
  - lib/aranha/selenium/driver_factory/base.rb
@@ -76,8 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
91
  - !ruby/object:Gem::Version
77
92
  version: '0'
78
93
  requirements: []
79
- rubyforge_project:
80
- rubygems_version: 2.7.7
94
+ rubygems_version: 3.1.6
81
95
  signing_key:
82
96
  specification_version: 4
83
97
  summary: Selenium' utilities for Ruby.