webdrone 0.4.0 → 0.5.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/.gitignore +2 -0
- data/lib/webdrone/browser.rb +1 -1
- data/lib/webdrone/clic.rb +4 -0
- data/lib/webdrone/ctxt.rb +6 -5
- data/lib/webdrone/find.rb +7 -0
- data/lib/webdrone/mark.rb +4 -0
- data/lib/webdrone/text.rb +4 -0
- data/lib/webdrone/version.rb +1 -1
- data/lib/webdrone/vrfy.rb +5 -1
- data/lib/webdrone/xlsx.rb +49 -14
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e01d81e7399969fed94be37f103881f1d37cba83
|
4
|
+
data.tar.gz: 10b7013b03c6cf91b851f55f458c46596b95078d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0dabeac3953e01aadb05aecd18016c6b8db6fda87a737c55111e6df1e28be69b6e202a91d0a2378396dbbf36da3988bb308894764ffc4737c887d7552c92c0c7
|
7
|
+
data.tar.gz: 303f2ba7d839eec7c4528fd32b7dd4fd611b80aad5579caec03fb8e9183d03e3e62c3a9ae82fde5502031047a3e5330d610d38901f110eba16af74ebc59d3356
|
data/.gitignore
CHANGED
data/lib/webdrone/browser.rb
CHANGED
@@ -4,7 +4,7 @@ module Webdrone
|
|
4
4
|
|
5
5
|
def initialize(browser: 'chrome', create_outdir: false, outdir: nil)
|
6
6
|
if create_outdir or outdir
|
7
|
-
outdir ||= "
|
7
|
+
outdir ||= "webdrone_output/#{Time.new.strftime('%Y%m%d_%H%M')}"
|
8
8
|
self.conf.outdir = outdir
|
9
9
|
end
|
10
10
|
if outdir != nil and browser.to_sym == :chrome
|
data/lib/webdrone/clic.rb
CHANGED
data/lib/webdrone/ctxt.rb
CHANGED
@@ -10,6 +10,7 @@ module Webdrone
|
|
10
10
|
|
11
11
|
def initialize(a0)
|
12
12
|
@a0 = a0
|
13
|
+
@framestack = []
|
13
14
|
end
|
14
15
|
|
15
16
|
def create_tab
|
@@ -23,15 +24,15 @@ module Webdrone
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def with_frame(name)
|
26
|
-
|
27
|
+
@framestack << name
|
27
28
|
@a0.driver.switch_to.frame name
|
28
|
-
@current_frame = name
|
29
29
|
if block_given?
|
30
30
|
yield
|
31
|
-
@
|
32
|
-
@
|
31
|
+
@framestack.pop
|
32
|
+
@a0.driver.switch_to.default_content
|
33
|
+
@framestack.each { |frame| @a0.driver.switch_to.frame frame}
|
33
34
|
end
|
34
|
-
|
35
|
+
name
|
35
36
|
end
|
36
37
|
|
37
38
|
def with_alert
|
data/lib/webdrone/find.rb
CHANGED
@@ -18,6 +18,13 @@ module Webdrone
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
+
def css(text, n: 1, all: false, visible: true)
|
22
|
+
@a0.wait.for do
|
23
|
+
items = @a0.driver.find_elements :css, text
|
24
|
+
choose(items, n, all, visible)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
21
28
|
def link(text, n: 1, all: false, visible: true)
|
22
29
|
self.xpath XPath::HTML.link(text).to_s, n: n, all: all, visible: visible
|
23
30
|
end
|
data/lib/webdrone/mark.rb
CHANGED
@@ -16,6 +16,10 @@ module Webdrone
|
|
16
16
|
flash @a0.find.id(text), color: color
|
17
17
|
end
|
18
18
|
|
19
|
+
def css(text, color: 'red', n: 1, all: false, visible: true)
|
20
|
+
flash @a0.find.css(text, n: n, all: all, visible: visible), color: color
|
21
|
+
end
|
22
|
+
|
19
23
|
def link(text, color: 'red', n: 1, all: false, visible: true)
|
20
24
|
flash @a0.find.link(text, n: n, all: all, visible: visible), color: color
|
21
25
|
end
|
data/lib/webdrone/text.rb
CHANGED
data/lib/webdrone/version.rb
CHANGED
data/lib/webdrone/vrfy.rb
CHANGED
@@ -16,6 +16,10 @@ module Webdrone
|
|
16
16
|
vrfy @a0.find.id(text), attr: attr, eq: eq, contains: contains
|
17
17
|
end
|
18
18
|
|
19
|
+
def css(text, attr: nil, eq: nil, contains: nil)
|
20
|
+
vrfy @a0.find.css(text), attr: attr, eq: eq, contains: contains
|
21
|
+
end
|
22
|
+
|
19
23
|
def link(text, n: 1, visible: true, attr: nil, eq: nil, contains: nil)
|
20
24
|
vrfy @a0.find.link(text, n: n, visible: visible), attr: attr, eq: eq, contains: contains
|
21
25
|
end
|
@@ -35,7 +39,7 @@ module Webdrone
|
|
35
39
|
def xpath(text, n: 1, visible: true, attr: nil, eq: nil, contains: nil)
|
36
40
|
vrfy @a0.find.xpath(text, n: n, visible: visible), attr: attr, eq: eq, contains: contains
|
37
41
|
end
|
38
|
-
|
42
|
+
|
39
43
|
def vrfy(item, attr: nil, eq: nil, contains: nil)
|
40
44
|
if attr != nil
|
41
45
|
r = item.attribute(attr) == eq if eq != nil
|
data/lib/webdrone/xlsx.rb
CHANGED
@@ -6,7 +6,7 @@ module Webdrone
|
|
6
6
|
end
|
7
7
|
|
8
8
|
class Xlsx
|
9
|
-
attr_accessor :a0, :filename, :sheet, :dict, :rows
|
9
|
+
attr_accessor :a0, :filename, :sheet, :dict, :rows, :both
|
10
10
|
|
11
11
|
def initialize(a0)
|
12
12
|
@a0 = a0
|
@@ -17,6 +17,7 @@ module Webdrone
|
|
17
17
|
def dict(sheet: nil, filename: nil)
|
18
18
|
update_sheet_filename(sheet, filename)
|
19
19
|
if @dict == nil
|
20
|
+
reset
|
20
21
|
@dict = {}
|
21
22
|
workbook = RubyXL::Parser.parse(@filename)
|
22
23
|
worksheet = workbook[@sheet]
|
@@ -30,9 +31,10 @@ module Webdrone
|
|
30
31
|
@dict
|
31
32
|
end
|
32
33
|
|
33
|
-
def rows(sheet: nil, filename: nil
|
34
|
+
def rows(sheet: nil, filename: nil)
|
34
35
|
update_sheet_filename(sheet, filename)
|
35
36
|
if @rows == nil
|
37
|
+
reset
|
36
38
|
workbook = RubyXL::Parser.parse(@filename)
|
37
39
|
worksheet = workbook[@sheet]
|
38
40
|
@rows = worksheet.sheet_data.rows.collect do |row|
|
@@ -41,9 +43,22 @@ module Webdrone
|
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
@rows
|
47
|
+
end
|
48
|
+
|
49
|
+
def both(sheet: nil, filename: nil)
|
50
|
+
update_sheet_filename(sheet, filename)
|
51
|
+
if @both == nil
|
52
|
+
reset
|
53
|
+
workbook = RubyXL::Parser.parse(@filename)
|
54
|
+
worksheet = workbook[@sheet]
|
55
|
+
rows = worksheet.sheet_data.rows.collect do |row|
|
56
|
+
row.cells.collect do |cell|
|
57
|
+
cell.value if cell != nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
head = rows.shift
|
61
|
+
@both = rows.collect do |row|
|
47
62
|
dict = {}
|
48
63
|
row.each_with_index do |val, i|
|
49
64
|
dict[head[i]] = val if head[i] != nil
|
@@ -51,23 +66,26 @@ module Webdrone
|
|
51
66
|
dict
|
52
67
|
end
|
53
68
|
end
|
54
|
-
@
|
69
|
+
@both
|
55
70
|
end
|
56
71
|
|
72
|
+
|
57
73
|
def save(sheet: nil, filename: nil, dict: nil, rows: nil)
|
58
74
|
@filename = filename if filename
|
59
75
|
@sheet = sheet if sheet
|
60
76
|
workbook = RubyXL::Parser.parse(@filename)
|
61
77
|
worksheet = workbook[@sheet]
|
62
|
-
if dict != nil
|
78
|
+
if @dict != nil
|
63
79
|
worksheet.sheet_data.rows.tap do |head, *body|
|
64
80
|
body.each do |row|
|
65
81
|
k = row[0].value
|
66
|
-
|
82
|
+
if @dict.include?(k)
|
83
|
+
row[1].change_contents(@dict[k])
|
84
|
+
end
|
67
85
|
end
|
68
86
|
end
|
69
|
-
elsif rows != nil
|
70
|
-
rows.each_with_index do |row, rowi|
|
87
|
+
elsif @rows != nil
|
88
|
+
@rows.each_with_index do |row, rowi|
|
71
89
|
row.each_with_index do |data, coli|
|
72
90
|
if worksheet[rowi] == nil || worksheet[rowi][coli] == nil
|
73
91
|
worksheet.add_cell(rowi, coli, data)
|
@@ -76,20 +94,37 @@ module Webdrone
|
|
76
94
|
end
|
77
95
|
end
|
78
96
|
end
|
97
|
+
elsif @both != nil
|
98
|
+
rows = worksheet.sheet_data.rows.collect do |row|
|
99
|
+
row.cells.collect do |cell|
|
100
|
+
cell.value if cell != nil
|
101
|
+
end
|
102
|
+
end
|
103
|
+
head = rows.shift
|
104
|
+
@both.each_with_index do |entry, i|
|
105
|
+
entry.each do |k, v|
|
106
|
+
index = head.index(k)
|
107
|
+
worksheet[i + 1][index].change_contents(v) if index
|
108
|
+
end
|
109
|
+
end
|
79
110
|
end
|
80
|
-
workbook.write(filename)
|
81
|
-
|
111
|
+
k = workbook.write(@filename)
|
112
|
+
reset
|
113
|
+
end
|
114
|
+
|
115
|
+
def reset()
|
116
|
+
@dict = @rows = @both = nil
|
82
117
|
end
|
83
118
|
|
84
119
|
protected
|
85
120
|
def update_sheet_filename(sheet, filename)
|
86
121
|
if sheet and sheet != @sheet
|
87
122
|
@sheet = sheet
|
88
|
-
|
123
|
+
reset
|
89
124
|
end
|
90
125
|
if filename and filename != @filename
|
91
126
|
@filename = filename
|
92
|
-
|
127
|
+
reset
|
93
128
|
end
|
94
129
|
end
|
95
130
|
end
|
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: 0.
|
4
|
+
version: 0.5.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: 2015-10-
|
11
|
+
date: 2015-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|