webdrone 1.8.12 → 1.10.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/.rubocop.relaxed.yml +9 -1
- data/.rubocop.yml +10 -0
- data/.ruby-version +1 -1
- data/.tool-versions +1 -0
- data/Gemfile +2 -0
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/bin/release-version +56 -0
- data/lib/webdrone.rb +4 -3
- data/lib/webdrone/browser.rb +12 -7
- data/lib/webdrone/conf.rb +2 -1
- data/lib/webdrone/error.rb +1 -0
- data/lib/webdrone/logg.rb +2 -1
- data/lib/webdrone/version.rb +1 -1
- data/lib/webdrone/vrfy.rb +1 -0
- data/lib/webdrone/xpath.rb +2 -2
- data/webdrone.gemspec +4 -1
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 54033552a41d39468377a85f94dab87190f0e390488835a37b13647503950189
|
|
4
|
+
data.tar.gz: 874c198bc2ae7167600be37ad096c744b82b5cd3fc88ad53a854020e1c8062d7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 529391d94128a9d0e7bd0ab5ff68de96e8991e8d4400e9e5446e74572fe651505ae57caa9e48ca880bea72ac0b020d212b39bfe368309476a9ed79526b1c5062
|
|
7
|
+
data.tar.gz: 40f4855afbfe706c0821936cd302364edd0d16fd24b65c227eea1a7f139614d08678b69ce7b8915af5a642259b1a476ff37cc5145b4f2a2ba4d73d017fa4a53b
|
data/.rubocop.relaxed.yml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Relaxed.Ruby.Style
|
|
2
|
-
## Version 2.
|
|
2
|
+
## Version 2.4
|
|
3
3
|
|
|
4
4
|
Style/Alias:
|
|
5
5
|
Enabled: false
|
|
@@ -65,6 +65,10 @@ Style/NegatedWhile:
|
|
|
65
65
|
Enabled: false
|
|
66
66
|
StyleGuide: https://relaxed.ruby.style/#stylenegatedwhile
|
|
67
67
|
|
|
68
|
+
Style/NumericPredicate:
|
|
69
|
+
Enabled: false
|
|
70
|
+
StyleGuide: https://relaxed.ruby.style/#stylenumericpredicate
|
|
71
|
+
|
|
68
72
|
Style/ParallelAssignment:
|
|
69
73
|
Enabled: false
|
|
70
74
|
StyleGuide: https://relaxed.ruby.style/#styleparallelassignment
|
|
@@ -121,6 +125,10 @@ Style/TrailingCommaInHashLiteral:
|
|
|
121
125
|
Enabled: false
|
|
122
126
|
StyleGuide: https://relaxed.ruby.style/#styletrailingcommainhashliteral
|
|
123
127
|
|
|
128
|
+
Style/SymbolArray:
|
|
129
|
+
Enabled: false
|
|
130
|
+
StyleGuide: http://relaxed.ruby.style/#stylesymbolarray
|
|
131
|
+
|
|
124
132
|
Style/WhileUntilModifier:
|
|
125
133
|
Enabled: false
|
|
126
134
|
StyleGuide: https://relaxed.ruby.style/#stylewhileuntilmodifier
|
data/.rubocop.yml
CHANGED
|
@@ -6,3 +6,13 @@ Naming/UncommunicativeMethodParamName:
|
|
|
6
6
|
Enabled: false
|
|
7
7
|
Style/AccessModifierDeclarations:
|
|
8
8
|
Enabled: false
|
|
9
|
+
Naming/RescuedExceptionsVariableName:
|
|
10
|
+
Enabled: false
|
|
11
|
+
Metrics/BlockLength:
|
|
12
|
+
Max: 50
|
|
13
|
+
Style/Attr:
|
|
14
|
+
Exclude:
|
|
15
|
+
- lib/webdrone/xpath.rb
|
|
16
|
+
Lint/DuplicateMethods:
|
|
17
|
+
Exclude:
|
|
18
|
+
- lib/webdrone/xpath.rb
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-2.
|
|
1
|
+
ruby-2.6.4
|
data/.tool-versions
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby 2.6.4
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/bin/release-version
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
path = File.realpath File.join(__dir__, '../lib/webdrone/version.rb')
|
|
5
|
+
load path
|
|
6
|
+
|
|
7
|
+
current = Webdrone::VERSION
|
|
8
|
+
numbers = current.split('.').map(&:to_i)
|
|
9
|
+
length = numbers.count
|
|
10
|
+
|
|
11
|
+
versions = length.times.map do |index|
|
|
12
|
+
version = numbers.dup
|
|
13
|
+
version[index] += index.zero? ? 1 : 2
|
|
14
|
+
index += 1
|
|
15
|
+
(index...length).each do |i|
|
|
16
|
+
version[i] = 0
|
|
17
|
+
end
|
|
18
|
+
version.join '.'
|
|
19
|
+
end.reverse
|
|
20
|
+
|
|
21
|
+
text = versions.each_with_index.map do |version, index|
|
|
22
|
+
"#{index + 1}. #{version}"
|
|
23
|
+
end.join("\n")
|
|
24
|
+
|
|
25
|
+
puts <<~FIN
|
|
26
|
+
|
|
27
|
+
Version file: #{path}
|
|
28
|
+
|
|
29
|
+
Current version: #{current}. Choose next version:
|
|
30
|
+
#{text}
|
|
31
|
+
|
|
32
|
+
FIN
|
|
33
|
+
|
|
34
|
+
print 'Choose? [1]'
|
|
35
|
+
option = gets.strip
|
|
36
|
+
|
|
37
|
+
index = option == '' ? 0 : option.to_i - 1
|
|
38
|
+
version = versions[index]
|
|
39
|
+
raise "Invalid option #{option}" unless version
|
|
40
|
+
|
|
41
|
+
`ruby -p -i -e 'gsub /#{current}/,"#{version}"' #{path}`
|
|
42
|
+
puts `bundle; git add #{path} Gemfile.lock; git commit -m "Version #{version}."; git tag v#{version}`
|
|
43
|
+
|
|
44
|
+
puts <<~FIN
|
|
45
|
+
|
|
46
|
+
Press enter to git push or CTRL+C to cancel
|
|
47
|
+
|
|
48
|
+
FIN
|
|
49
|
+
|
|
50
|
+
print 'git push origin master --tags'
|
|
51
|
+
gets
|
|
52
|
+
puts `git push origin master --tags`
|
|
53
|
+
|
|
54
|
+
puts 'rake release'
|
|
55
|
+
gets
|
|
56
|
+
puts `rake release`
|
data/lib/webdrone.rb
CHANGED
|
@@ -53,8 +53,9 @@ module Webdrone
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
def self.irb_console(binding = nil)
|
|
56
|
-
puts
|
|
56
|
+
puts 'Webdrone: Webdrone.irb_console IS DEPRECATED, please use a0.console instead.'
|
|
57
57
|
return if IRB.CurrentContext && !binding
|
|
58
|
+
|
|
58
59
|
binding ||= Kernel.binding.of_caller(1)
|
|
59
60
|
IRB.start_session(binding)
|
|
60
61
|
end
|
|
@@ -62,7 +63,7 @@ module Webdrone
|
|
|
62
63
|
Webdrone.running_pry = false
|
|
63
64
|
def self.pry_console(binding = nil)
|
|
64
65
|
if Webdrone.running_pry
|
|
65
|
-
puts
|
|
66
|
+
puts 'Webdrone: pry console already running.'
|
|
66
67
|
else
|
|
67
68
|
Webdrone.running_pry = true
|
|
68
69
|
binding ||= Kernel.binding.of_caller(1)
|
|
@@ -91,7 +92,7 @@ module IRB
|
|
|
91
92
|
@CONF[:IRB_RC]&.call(irb.context)
|
|
92
93
|
@CONF[:MAIN_CONTEXT] = irb.context
|
|
93
94
|
|
|
94
|
-
trap(
|
|
95
|
+
trap('SIGINT') do
|
|
95
96
|
irb.signal_handle
|
|
96
97
|
end
|
|
97
98
|
|
data/lib/webdrone/browser.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'English'
|
|
4
|
+
|
|
3
5
|
module Webdrone
|
|
4
6
|
class Browser
|
|
5
7
|
attr_reader :driver
|
|
@@ -14,7 +16,7 @@ module Webdrone
|
|
|
14
16
|
@firefox_profile['startup.homepage_welcome_url.additional'] = 'about:blank'
|
|
15
17
|
@firefox_profile['browser.download.folderList'] = 2
|
|
16
18
|
@firefox_profile['browser.download.manager.showWhenStarting'] = false
|
|
17
|
-
@firefox_profile['browser.helperApps.neverAsk.saveToDisk'] =
|
|
19
|
+
@firefox_profile['browser.helperApps.neverAsk.saveToDisk'] = 'images/jpeg, application/pdf, application/octet-stream, application/download'
|
|
18
20
|
|
|
19
21
|
@firefox_profile
|
|
20
22
|
end
|
|
@@ -42,7 +44,7 @@ module Webdrone
|
|
|
42
44
|
env_update(Kernel.binding) if use_env
|
|
43
45
|
|
|
44
46
|
if create_outdir || outdir
|
|
45
|
-
outdir ||= File.join(
|
|
47
|
+
outdir ||= File.join('webdrone_output', Time.new.strftime('%Y%m%d_%H%M%S'))
|
|
46
48
|
conf.outdir = outdir
|
|
47
49
|
end
|
|
48
50
|
outdir = File.join(Dir.pwd, outdir) if !outdir.nil? && !Pathname.new(outdir).absolute?
|
|
@@ -57,15 +59,17 @@ module Webdrone
|
|
|
57
59
|
chrome_options.add_argument '--start-maximized' if maximize
|
|
58
60
|
maximize = false
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
service = Selenium::WebDriver::Service.chrome(args: { log_path: "/tmp/chromedriver.#{$PID}.log", verbose: true })
|
|
63
|
+
@driver = Selenium::WebDriver.for browser.to_sym, options: chrome_options, service: service
|
|
61
64
|
elsif !outdir.nil? && browser.to_sym == :firefox
|
|
62
65
|
firefox_options ||= Browser.firefox_options
|
|
63
66
|
firefox_profile ||= Browser.firefox_profile
|
|
64
67
|
|
|
65
68
|
firefox_options.add_argument '-headless' if headless
|
|
66
|
-
downdir = OS.windows? ? outdir.tr(
|
|
69
|
+
downdir = OS.windows? ? outdir.tr('/', '\\') : outdir
|
|
67
70
|
firefox_profile['browser.download.dir'] = downdir
|
|
68
|
-
|
|
71
|
+
firefox_options.profile = firefox_profile
|
|
72
|
+
@driver = Selenium::WebDriver.for browser.to_sym, options: firefox_options
|
|
69
73
|
else
|
|
70
74
|
@driver = Selenium::WebDriver.for browser.to_sym
|
|
71
75
|
end
|
|
@@ -124,6 +128,7 @@ module Webdrone
|
|
|
124
128
|
|
|
125
129
|
def console(binding = nil)
|
|
126
130
|
return unless conf.developer
|
|
131
|
+
|
|
127
132
|
binding ||= Kernel.binding.of_caller(1)
|
|
128
133
|
old_error = conf.error
|
|
129
134
|
old_developer = conf.developer
|
|
@@ -140,9 +145,9 @@ module Webdrone
|
|
|
140
145
|
protected
|
|
141
146
|
|
|
142
147
|
def env_update_bool(binding, var, val_old, val_new)
|
|
143
|
-
if val_new ==
|
|
148
|
+
if val_new == 'true'
|
|
144
149
|
val_new = true
|
|
145
|
-
elsif val_new ==
|
|
150
|
+
elsif val_new == 'false'
|
|
146
151
|
val_new = false
|
|
147
152
|
else
|
|
148
153
|
puts "Webdrone: ignoring value '#{val_new}' for boolean parameter #{var}."
|
data/lib/webdrone/conf.rb
CHANGED
|
@@ -32,7 +32,8 @@ module Webdrone
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def error=(val)
|
|
35
|
-
raise "Invalid value '#{val}' for error"
|
|
35
|
+
raise "Invalid value '#{val}' for error" unless %i[raise_report raise ignore].include? val
|
|
36
|
+
|
|
36
37
|
@error = val
|
|
37
38
|
rescue StandardError => error
|
|
38
39
|
Webdrone.report_error(@a0, error)
|
data/lib/webdrone/error.rb
CHANGED
|
@@ -133,6 +133,7 @@ module Webdrone
|
|
|
133
133
|
|
|
134
134
|
def self.report_error(a0, exception)
|
|
135
135
|
return if a0.conf.error == :ignore
|
|
136
|
+
|
|
136
137
|
if exception.class != WebdroneError
|
|
137
138
|
exception = WebdroneError.new(exception.message, exception, a0, Kernel.binding.callers)
|
|
138
139
|
if a0.conf.developer && exception.binding
|
data/lib/webdrone/logg.rb
CHANGED
|
@@ -101,7 +101,8 @@ module Webdrone
|
|
|
101
101
|
def setup_format
|
|
102
102
|
begin
|
|
103
103
|
cols, _line = HighLine.default_instance.terminal.terminal_size
|
|
104
|
-
rescue StandardError
|
|
104
|
+
rescue StandardError => error
|
|
105
|
+
puts "ignoring error: #{error}"
|
|
105
106
|
end
|
|
106
107
|
cols ||= 120
|
|
107
108
|
total = 6 + 15 + 11 + 5
|
data/lib/webdrone/version.rb
CHANGED
data/lib/webdrone/vrfy.rb
CHANGED
|
@@ -42,6 +42,7 @@ module Webdrone
|
|
|
42
42
|
targ = "contains: [#{contains}]" if contains
|
|
43
43
|
|
|
44
44
|
raise "VRFY: #{callee} [#{text}] text value [#{item.text}] does not comply #{targ}" if attr.nil?
|
|
45
|
+
|
|
45
46
|
raise "VRFY: #{callee} [#{text}] attr [#{attr}] value [#{item.attribute(attr)}] does not comply #{targ}"
|
|
46
47
|
end
|
|
47
48
|
|
data/lib/webdrone/xpath.rb
CHANGED
|
@@ -27,7 +27,7 @@ module Webdrone
|
|
|
27
27
|
locator = locator.to_s
|
|
28
28
|
button = descendant(:input)[attr(:type).one_of('submit', 'reset', 'image', 'button')][attr(:id).equals(locator) | attr(:value).is(locator) | attr(:title).is(locator)]
|
|
29
29
|
button += descendant(:button)[attr(:id).equals(locator) | attr(:value).is(locator) | string.n.is(locator) | attr(:title).is(locator)]
|
|
30
|
-
button
|
|
30
|
+
button + descendant(:input)[attr(:type).equals('image')][attr(:alt).is(locator)]
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
# Match anything returned by either {#link} or {#button}.
|
|
@@ -154,7 +154,7 @@ module Webdrone
|
|
|
154
154
|
# Id of the 'dd' element or text from preciding 'dt' element content
|
|
155
155
|
def definition_description(locator)
|
|
156
156
|
locator = locator.to_s
|
|
157
|
-
descendant(:dd)[attr(:id).equals(locator) | previous_sibling(:dt)[string.n.equals(locator)]
|
|
157
|
+
descendant(:dd)[attr(:id).equals(locator) | previous_sibling(:dt)[string.n.equals(locator)]]
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
protected
|
data/webdrone.gemspec
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
5
|
require 'webdrone/version'
|
|
@@ -15,7 +17,8 @@ Gem::Specification.new do |spec|
|
|
|
15
17
|
|
|
16
18
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
|
17
19
|
# delete this section to allow pushing this gem to any host.
|
|
18
|
-
raise
|
|
20
|
+
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.' unless spec.respond_to?(:metadata)
|
|
21
|
+
|
|
19
22
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
|
20
23
|
|
|
21
24
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: webdrone
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aldrin Martoq
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-09-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -219,6 +219,7 @@ files:
|
|
|
219
219
|
- ".rubocop.yml"
|
|
220
220
|
- ".ruby-gemset"
|
|
221
221
|
- ".ruby-version"
|
|
222
|
+
- ".tool-versions"
|
|
222
223
|
- ".travis.yml"
|
|
223
224
|
- CHANGELOG.md
|
|
224
225
|
- Gemfile
|
|
@@ -226,6 +227,7 @@ files:
|
|
|
226
227
|
- README.md
|
|
227
228
|
- Rakefile
|
|
228
229
|
- bin/console
|
|
230
|
+
- bin/release-version
|
|
229
231
|
- bin/setup
|
|
230
232
|
- lib/webdrone.rb
|
|
231
233
|
- lib/webdrone/browser.rb
|
|
@@ -268,8 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
268
270
|
- !ruby/object:Gem::Version
|
|
269
271
|
version: '0'
|
|
270
272
|
requirements: []
|
|
271
|
-
|
|
272
|
-
rubygems_version: 2.7.8
|
|
273
|
+
rubygems_version: 3.0.3
|
|
273
274
|
signing_key:
|
|
274
275
|
specification_version: 4
|
|
275
276
|
summary: A simple selenium webdriver wrapper, ruby version.
|