webdrone 1.8.12 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|