aranha-selenium 0.1.3 → 0.2.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: 01ca98a1aeb97557dd35ed0fb973d5d420c184f2ec34da3b4483d1d8e7d067b7
4
- data.tar.gz: 76bd952857472336c926f6006bec90199b369f59e462f92c107685328a5de02d
3
+ metadata.gz: 21d5ec38a1006e6df4ea9f098fb351fb61e8d174e306f6ba858a9efacc53f4c0
4
+ data.tar.gz: 436207b23653cd35ce02368a27bccb04544242d1d3d77e7e92ef289f1dfb1e63
5
5
  SHA512:
6
- metadata.gz: 8f713e16ed5857323dd3a217a12ebef90f01bfc1df3100af464865b85122db4c15b16ea32da51e4fb556668bbd7f4569837280c5a0508568e9d64e513e4ec99d
7
- data.tar.gz: da5f904354485fb4a4482d8eb2d0cafe7f3c1a6e674be04dec60794612d0b3762033e78cf398990167e57b7fd22b8b7ad009473566933451c7022975627061f4
6
+ metadata.gz: 99b2874c772bda29cb94d0da4622af3ed5ee7536fe5c089aa32d6a913b4fc5e959bb4008b868df6e0f1c15aba91e32b0e2ddba2d4db66c1ac800ca142ede58d2
7
+ data.tar.gz: 17f830d15dd7174de9a118a5a1eee5204bb57ac33f40fe7741eabafe6d4973759854d61cfef35c358dd63ca49bdd751db6931644c2748f8703c4bbc2cc96b981
@@ -57,6 +57,14 @@ module Aranha
57
57
  option_value(:headless)
58
58
  end
59
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
+
60
68
  def user_agent
61
69
  option_value(:user_agent)
62
70
  end
@@ -14,14 +14,19 @@ module Aranha
14
14
 
15
15
  def chrome_options
16
16
  r = ::Selenium::WebDriver::Chrome::Options.new
17
- r.add_argument('--ignore-certificate-errors') if accept_insecure_certs?
18
- r.add_argument('--headless') if headless?
19
- r.add_argument('--disable-popup-blocking')
20
- r.add_argument('--disable-translate')
21
- r.add_argument("user-agent=#{user_agent}") if user_agent.present?
17
+ chrome_arguments.each { |arg| r.add_argument(arg) }
22
18
  r.add_preference(:download, prompt_for_download: false, default_directory: downloads_dir)
23
19
  r
24
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
25
30
  end
26
31
  end
27
32
  end
@@ -9,10 +9,7 @@ module Aranha
9
9
  def build
10
10
  ::Selenium::WebDriver.for(
11
11
  :firefox,
12
- options: ::Selenium::WebDriver::Firefox::Options.new(
13
- profile: build_profile,
14
- args: build_args
15
- ),
12
+ options: build_options,
16
13
  desired_capabilities: build_capabilities
17
14
  )
18
15
  end
@@ -21,7 +18,7 @@ module Aranha
21
18
 
22
19
  def build_args
23
20
  r = []
24
- r << '-headless' if headless?
21
+ r << '--headless' if headless?
25
22
  r
26
23
  end
27
24
 
@@ -33,16 +30,33 @@ module Aranha
33
30
  end
34
31
  end
35
32
 
36
- def build_profile
37
- r = ::Selenium::WebDriver::Firefox::Profile.new
38
- r['browser.download.dir'] = downloads_dir
39
- r['browser.download.folderList'] = 2
40
- r['browser.helperApps.neverAsk.saveToDisk'] = auto_download_mime_types.join(';')
41
- 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
+ }
42
47
  r['general.useragent.override'] = user_agent if user_agent.present?
43
48
  r
44
49
  end
45
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
+
46
60
  def auto_download_mime_types
47
61
  ::File.read(
48
62
  ::File.join(__dir__, 'firefox_auto_download_mime_types')
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Selenium
5
- VERSION = '0.1.3'
5
+ VERSION = '0.2.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.1.3
4
+ version: 0.2.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: 2020-06-11 00:00:00.000000000 Z
11
+ date: 2021-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -97,8 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubyforge_project:
101
- rubygems_version: 2.7.7
100
+ rubygems_version: 3.0.9
102
101
  signing_key:
103
102
  specification_version: 4
104
103
  summary: Selenium' utilities for Ruby.