webdrone 1.10.0 → 1.12.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.yml +2 -2
- data/CHANGELOG.md +50 -0
- data/README.md +0 -2
- data/lib/webdrone/clic.rb +1 -1
- data/lib/webdrone/conf.rb +1 -1
- data/lib/webdrone/ctxt.rb +34 -0
- data/lib/webdrone/error.rb +1 -1
- data/lib/webdrone/find.rb +7 -7
- data/lib/webdrone/form.rb +7 -7
- data/lib/webdrone/html.rb +1 -1
- data/lib/webdrone/mark.rb +1 -1
- data/lib/webdrone/text.rb +1 -1
- data/lib/webdrone/version.rb +1 -1
- data/lib/webdrone/vrfy.rb +1 -1
- data/webdrone.gemspec +0 -1
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59b21203e4a9a61a584a1e062e7f26efe225a2212ac34bfef5ace8c4fe01d460
|
4
|
+
data.tar.gz: d12bbf98c32ab410d784c5c6a1af2d59ec2a8b7cad1fc12ac609d5d3b579252f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b3a88c1b42159fb7887ea3ff18e02a5637c17b3aab50d3121bfaa7a4a7602490c6fdf334d368531815b08cc5fef1d852c738e2edf9c6989b9ff3f07f95ebb8e
|
7
|
+
data.tar.gz: 10654e5945c31e7c31f45a74784147be0dcdbbfebbf169421fa9cc6755ccc973c01a3a4dae8a3a3fecfaad76f2f71cc927e519d6febfec68fd4ffdf2cf6595c9
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,56 @@ New features are summarized here.
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
+
## v.1.12.0 - 2019-12-04
|
8
|
+
### Added
|
9
|
+
- Added a new a0.conf.parent option, so instead of setting `parent:` in every method like:
|
10
|
+
```ruby
|
11
|
+
modal = a0.find.css '.modal-dialog'
|
12
|
+
|
13
|
+
a0.form.set 'field', 'value', parent: modal
|
14
|
+
a0.clic.on 'button', parent: modal
|
15
|
+
```
|
16
|
+
you can setup a default parent from now on with `a0.conf.parent=` like:
|
17
|
+
```ruby
|
18
|
+
a0.conf.parent = a0.find.css '.modal-dialog'
|
19
|
+
|
20
|
+
a0.form.set 'field', 'value' # uses a0.conf.parent as default parent
|
21
|
+
a0.clic.on 'button'
|
22
|
+
|
23
|
+
a0.conf.parent = nil # resets default parent
|
24
|
+
```
|
25
|
+
- Added the following methods to `a0.ctxt`:
|
26
|
+
- `a0.ctxt.id`
|
27
|
+
- `a0.ctxt.css`
|
28
|
+
- `a0.ctxt.link`
|
29
|
+
- `a0.ctxt.button`
|
30
|
+
- `a0.ctxt.on`
|
31
|
+
- `a0.ctxt.option`
|
32
|
+
- `a0.ctxt.xpath`
|
33
|
+
|
34
|
+
So instead of code like the above, we can use give a block of code to automatically switch in a stack of parents like:
|
35
|
+
```ruby
|
36
|
+
a0.ctxt.css '.modal-dialog' do
|
37
|
+
# sets a0.conf.parent = the found .modal-dialog
|
38
|
+
a0.form.set 'field', 'value'
|
39
|
+
a0.clic.on 'button'
|
40
|
+
|
41
|
+
a0.ctxt.css '.modal-footer' do
|
42
|
+
# sets a0.conf.parent to the found .modal-footer within the previous .modal-dialog
|
43
|
+
end
|
44
|
+
# sets a0.conf.parent back to the found .modal-dialog
|
45
|
+
end
|
46
|
+
# sets a0.conf.parent back to nil (the default) or whatever it was before calling a0.ctxt.css
|
47
|
+
```
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
## v.1.10.0
|
52
|
+
### Fixed
|
53
|
+
- Warnings for chrome and firefox
|
54
|
+
|
55
|
+
|
56
|
+
|
7
57
|
## v.1.8.12 - 2019-02-22
|
8
58
|
### Fixed
|
9
59
|
- Fixing null terminal column size when used without a terminal, caused by highlight 2.0.1.
|
data/README.md
CHANGED
data/lib/webdrone/clic.rb
CHANGED
@@ -14,7 +14,7 @@ module Webdrone
|
|
14
14
|
@a0 = a0
|
15
15
|
end
|
16
16
|
|
17
|
-
def clic(text, n: 1, all: false, visible: true, scroll: false, parent:
|
17
|
+
def clic(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent, color: '#af1616', times: nil, delay: nil, shot: nil, mark: false)
|
18
18
|
item = @a0.find.send __callee__, text, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
19
19
|
@a0.mark.mark_item(item, color: color, times: times, delay: delay, shot: shot, text: text) if mark
|
20
20
|
@a0.shot.screen shot.is_a?(String) ? shot : text if shot
|
data/lib/webdrone/conf.rb
CHANGED
data/lib/webdrone/ctxt.rb
CHANGED
@@ -13,6 +13,7 @@ module Webdrone
|
|
13
13
|
def initialize(a0)
|
14
14
|
@a0 = a0
|
15
15
|
@framestack = []
|
16
|
+
@parent_stack = []
|
16
17
|
end
|
17
18
|
|
18
19
|
def create_tab
|
@@ -83,5 +84,38 @@ module Webdrone
|
|
83
84
|
@a0.conf.send "#{k}=", v
|
84
85
|
end
|
85
86
|
end
|
87
|
+
|
88
|
+
def ctxt(text, n: 1, visible: true, scroll: false, parent: @a0.conf.parent, color: '#3db116', times: nil, delay: nil, shot: nil, mark: true)
|
89
|
+
item = @a0.find.send __callee__, text, n: n, all: false, visible: visible, scroll: scroll, parent: parent
|
90
|
+
@a0.mark.mark_item(item, color: color, times: times, delay: delay, shot: shot, text: text) if mark
|
91
|
+
@a0.shot.screen shot.is_a?(String) ? shot : text if shot
|
92
|
+
|
93
|
+
@parent_stack << @a0.conf.parent
|
94
|
+
@a0.conf.parent = item
|
95
|
+
|
96
|
+
if block_given?
|
97
|
+
begin
|
98
|
+
yield
|
99
|
+
ensure
|
100
|
+
parent_pop
|
101
|
+
end
|
102
|
+
end
|
103
|
+
rescue StandardError => error
|
104
|
+
Webdrone.report_error(@a0, error)
|
105
|
+
end
|
106
|
+
|
107
|
+
def parent_pop
|
108
|
+
@a0.conf.parent = @parent_stack.pop
|
109
|
+
end
|
110
|
+
|
111
|
+
alias_method :id, :ctxt
|
112
|
+
alias_method :css, :ctxt
|
113
|
+
alias_method :link, :ctxt
|
114
|
+
alias_method :button, :ctxt
|
115
|
+
alias_method :on, :ctxt
|
116
|
+
alias_method :option, :ctxt
|
117
|
+
alias_method :xpath, :ctxt
|
118
|
+
|
119
|
+
protected :ctxt
|
86
120
|
end
|
87
121
|
end
|
data/lib/webdrone/error.rb
CHANGED
@@ -65,7 +65,7 @@ module Webdrone
|
|
65
65
|
ini = 0 if ini.negative?
|
66
66
|
|
67
67
|
write_title "LOCATION OF ERROR"
|
68
|
-
write_line "#{@location[:path]} AT LINE #{sprintf '
|
68
|
+
write_line "#{@location[:path]} AT LINE #{sprintf '%<location>3d', location: @location[:lineno]}"
|
69
69
|
File.readlines(@location[:path])[ini..fin].each_with_index do |line, index|
|
70
70
|
lno = index + ini + 1
|
71
71
|
if lno == @location[:lineno]
|
data/lib/webdrone/find.rb
CHANGED
@@ -14,7 +14,7 @@ module Webdrone
|
|
14
14
|
@a0 = a0
|
15
15
|
end
|
16
16
|
|
17
|
-
def id(text, n: 1, all: false, visible: true, scroll: false, parent:
|
17
|
+
def id(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
18
18
|
@a0.wait.for do
|
19
19
|
items = (parent || @a0.driver).find_elements :id, text
|
20
20
|
choose(items, n, all, visible, scroll)
|
@@ -23,7 +23,7 @@ module Webdrone
|
|
23
23
|
Webdrone.report_error(@a0, error)
|
24
24
|
end
|
25
25
|
|
26
|
-
def css(text, n: 1, all: false, visible: true, scroll: false, parent:
|
26
|
+
def css(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
27
27
|
@a0.wait.for do
|
28
28
|
items = (parent || @a0.driver).find_elements :css, text
|
29
29
|
choose(items, n, all, visible, scroll)
|
@@ -32,31 +32,31 @@ module Webdrone
|
|
32
32
|
Webdrone.report_error(@a0, error)
|
33
33
|
end
|
34
34
|
|
35
|
-
def link(text, n: 1, all: false, visible: true, scroll: false, parent:
|
35
|
+
def link(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
36
36
|
xpath Webdrone::XPath.link(text).to_s, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
37
37
|
rescue StandardError => error
|
38
38
|
Webdrone.report_error(@a0, error)
|
39
39
|
end
|
40
40
|
|
41
|
-
def button(text, n: 1, all: false, visible: true, scroll: false, parent:
|
41
|
+
def button(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
42
42
|
xpath Webdrone::XPath.button(text).to_s, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
43
43
|
rescue StandardError => error
|
44
44
|
Webdrone.report_error(@a0, error)
|
45
45
|
end
|
46
46
|
|
47
|
-
def on(text, n: 1, all: false, visible: true, scroll: false, parent:
|
47
|
+
def on(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
48
48
|
xpath Webdrone::XPath.link_or_button(text).to_s, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
49
49
|
rescue StandardError => error
|
50
50
|
Webdrone.report_error(@a0, error)
|
51
51
|
end
|
52
52
|
|
53
|
-
def option(text, n: 1, all: false, visible: true, scroll: false, parent:
|
53
|
+
def option(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
54
54
|
xpath Webdrone::XPath.option(text).to_s, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
55
55
|
rescue StandardError => error
|
56
56
|
Webdrone.report_error(@a0, error)
|
57
57
|
end
|
58
58
|
|
59
|
-
def xpath(text, n: 1, all: false, visible: true, scroll: false, parent:
|
59
|
+
def xpath(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
60
60
|
@a0.wait.for do
|
61
61
|
items = (parent || @a0.driver).find_elements :xpath, text
|
62
62
|
choose(items, n, all, visible, scroll)
|
data/lib/webdrone/form.rb
CHANGED
@@ -90,7 +90,7 @@ module Webdrone
|
|
90
90
|
@data = prev
|
91
91
|
end
|
92
92
|
|
93
|
-
def set(key, val, n: 1, visible: true, scroll: false, parent:
|
93
|
+
def set(key, val, n: 1, visible: true, scroll: false, parent: a0.conf.parent, mark: false)
|
94
94
|
item = find_item(key, n: n, visible: visible, scroll: scroll, parent: parent)
|
95
95
|
@a0.mark.mark_item item if mark
|
96
96
|
if item.tag_name == 'select'
|
@@ -114,7 +114,7 @@ module Webdrone
|
|
114
114
|
Webdrone.report_error(@a0, error)
|
115
115
|
end
|
116
116
|
|
117
|
-
def get(key, n: 1, visible: true, scroll: false, parent:
|
117
|
+
def get(key, n: 1, visible: true, scroll: false, parent: a0.conf.parent, mark: false)
|
118
118
|
item = find_item(key, n: n, visible: visible, scroll: scroll, parent: parent)
|
119
119
|
@a0.mark.mark_item item if mark
|
120
120
|
item[:value]
|
@@ -122,7 +122,7 @@ module Webdrone
|
|
122
122
|
Webdrone.report_error(@a0, error)
|
123
123
|
end
|
124
124
|
|
125
|
-
def clic(key, n: 1, visible: true, scroll: false, parent:
|
125
|
+
def clic(key, n: 1, visible: true, scroll: false, parent: a0.conf.parent, mark: false)
|
126
126
|
item = find_item(key, n: n, visible: visible, scroll: scroll, parent: parent)
|
127
127
|
@a0.mark.mark_item item if mark
|
128
128
|
item.click
|
@@ -130,7 +130,7 @@ module Webdrone
|
|
130
130
|
Webdrone.report_error(@a0, error)
|
131
131
|
end
|
132
132
|
|
133
|
-
def selected?(key, n: 1, visible: true, scroll: false, parent:
|
133
|
+
def selected?(key, n: 1, visible: true, scroll: false, parent: a0.conf.parent, mark: false)
|
134
134
|
item = find_item(key, n: n, visible: visible, scroll: scroll, parent: parent)
|
135
135
|
@a0.mark.mark_item item if mark
|
136
136
|
item.selected?
|
@@ -138,13 +138,13 @@ module Webdrone
|
|
138
138
|
Webdrone.report_error(@a0, error)
|
139
139
|
end
|
140
140
|
|
141
|
-
def mark(key, n: 1, visible: true, scroll: false, parent:
|
141
|
+
def mark(key, n: 1, visible: true, scroll: false, parent: a0.conf.parent, color: '#af1616', times: nil, delay: nil, shot: nil)
|
142
142
|
@a0.mark.mark_item find_item(key, n: n, visible: visible, scroll: scroll, parent: parent), color: color, times: times, delay: delay, shot: shot
|
143
143
|
rescue StandardError => error
|
144
144
|
Webdrone.report_error(@a0, error)
|
145
145
|
end
|
146
146
|
|
147
|
-
def submit(key = nil, n: 1, visible: true, scroll: false, parent:
|
147
|
+
def submit(key = nil, n: 1, visible: true, scroll: false, parent: a0.conf.parent, mark: false)
|
148
148
|
item = find_item(key, n: n, visible: visible, scroll: scroll, parent: parent) if key
|
149
149
|
@a0.mark.mark_item item if mark
|
150
150
|
@lastitem.submit
|
@@ -160,7 +160,7 @@ module Webdrone
|
|
160
160
|
Webdrone.report_error(@a0, error)
|
161
161
|
end
|
162
162
|
|
163
|
-
def find_item(key, n: 1, visible: true, scroll: false, parent:
|
163
|
+
def find_item(key, n: 1, visible: true, scroll: false, parent: a0.conf.parent)
|
164
164
|
@lastitem = \
|
165
165
|
if @xpath.respond_to? :call
|
166
166
|
@a0.find.xpath @xpath.call(key).to_s, n: n, visible: visible, scroll: scroll, parent: parent
|
data/lib/webdrone/html.rb
CHANGED
@@ -14,7 +14,7 @@ module Webdrone
|
|
14
14
|
@a0 = a0
|
15
15
|
end
|
16
16
|
|
17
|
-
def find_html(text, n: 1, all: false, visible: true, scroll: false, parent:
|
17
|
+
def find_html(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
18
18
|
item = @a0.find.send __callee__, text, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
19
19
|
if item.is_a? Array
|
20
20
|
item.collect { |x| x.attribute 'innerHTML' }
|
data/lib/webdrone/mark.rb
CHANGED
@@ -18,7 +18,7 @@ module Webdrone
|
|
18
18
|
@clear = ENV['WEBDRONE_MARK_CLEAR'] == 'true' || false
|
19
19
|
end
|
20
20
|
|
21
|
-
def mark(text, n: 1, all: false, visible: true, scroll: false, parent:
|
21
|
+
def mark(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent, color: '#af1616', times: nil, delay: nil, shot: nil)
|
22
22
|
item = @a0.find.send __callee__, text, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
23
23
|
mark_item item, color: color, times: times, delay: delay, shot: shot, text: text
|
24
24
|
rescue StandardError => error
|
data/lib/webdrone/text.rb
CHANGED
@@ -14,7 +14,7 @@ module Webdrone
|
|
14
14
|
@a0 = a0
|
15
15
|
end
|
16
16
|
|
17
|
-
def text(text, n: 1, all: false, visible: true, scroll: false, parent:
|
17
|
+
def text(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent)
|
18
18
|
item = @a0.find.send __callee__, text, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
19
19
|
if item.is_a? Array
|
20
20
|
item.collect(&:text)
|
data/lib/webdrone/version.rb
CHANGED
data/lib/webdrone/vrfy.rb
CHANGED
@@ -14,7 +14,7 @@ module Webdrone
|
|
14
14
|
@a0 = a0
|
15
15
|
end
|
16
16
|
|
17
|
-
def vrfy(text, n: 1, all: false, visible: true, scroll: false, parent:
|
17
|
+
def vrfy(text, n: 1, all: false, visible: true, scroll: false, parent: a0.conf.parent, attr: nil, eq: nil, contains: nil, mark: false)
|
18
18
|
item = @a0.find.send __callee__, text, n: n, all: all, visible: visible, scroll: scroll, parent: parent
|
19
19
|
@a0.mark.mark_item item if mark
|
20
20
|
if item.is_a? Array
|
data/webdrone.gemspec
CHANGED
@@ -32,7 +32,6 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'rake'
|
33
33
|
spec.add_development_dependency 'rspec'
|
34
34
|
spec.add_development_dependency 'rubocop'
|
35
|
-
spec.add_development_dependency 'solargraph'
|
36
35
|
|
37
36
|
spec.add_runtime_dependency 'binding_of_caller'
|
38
37
|
spec.add_runtime_dependency 'highline', '>= 2.0.0'
|
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.12.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-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,20 +94,6 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: solargraph
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: binding_of_caller
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|