selenium-dsl 0.1.5 → 0.1.6
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.
- data/bin/sd +16 -5
- data/bin/selenium-dsl +16 -5
- data/lib/selenium_dsl.rb +26 -7
- data/lib/selenium_dsl/engines.rb +25 -5
- metadata +2 -2
data/bin/sd
CHANGED
@@ -2,18 +2,29 @@ require 'selenium_dsl'
|
|
2
2
|
|
3
3
|
if ARGV.length>0
|
4
4
|
codes = IO.read(ARGV[0])
|
5
|
-
SeleniumDsl.parser(codes,ARGV[1])
|
5
|
+
SeleniumDsl.parser(codes,ARGV[1,99])
|
6
6
|
else
|
7
7
|
puts <<END
|
8
8
|
Selenium DSL
|
9
9
|
============
|
10
|
-
> selenium-dsl <script-file> [-
|
11
|
-
> sd <script-file> [-
|
10
|
+
> selenium-dsl <script-file> [-mqrsv] #OR
|
11
|
+
> sd <script-file> [-mqrsv]
|
12
12
|
--------------------------
|
13
13
|
m: mono --> no color
|
14
|
-
q: quit -->
|
14
|
+
q: quit --> close browser
|
15
|
+
r: resize --> resize browser
|
16
|
+
s: screenshot> error, screenshot!
|
15
17
|
v: verbose --> parsing output
|
16
18
|
|
19
|
+
Ex:
|
20
|
+
> sd go-test -m -q -v -r:800x600 -s:error_image
|
21
|
+
> sd go-test -mqv -r:800x600 -s:error_image
|
22
|
+
> sd go-test -mqvr:800x600 -s:error_image
|
23
|
+
> sd go-test -mqvsr:800x600
|
24
|
+
> sd go-test -qr:800x600
|
25
|
+
> sd go-test -q
|
26
|
+
> sd go-test
|
27
|
+
|
17
28
|
Script-Reference:
|
18
29
|
-----------------
|
19
30
|
eng: <string> [params] --> Commands
|
@@ -34,7 +45,7 @@ cmd: <css-cmd>[@<attr>][=~<text>] --> DQ and check node attr
|
|
34
45
|
Script-BASH-for-cron-job
|
35
46
|
------------------------
|
36
47
|
#!/bin/bash
|
37
|
-
txt=`sd my-website -
|
48
|
+
txt=`sd my-website -mqs`
|
38
49
|
if [ $? -ne 0 ]
|
39
50
|
then
|
40
51
|
echo "Error!!!"
|
data/bin/selenium-dsl
CHANGED
@@ -2,18 +2,29 @@ require 'selenium_dsl'
|
|
2
2
|
|
3
3
|
if ARGV.length>0
|
4
4
|
codes = IO.read(ARGV[0])
|
5
|
-
SeleniumDsl.parser(codes,ARGV[1])
|
5
|
+
SeleniumDsl.parser(codes,ARGV[1,99])
|
6
6
|
else
|
7
7
|
puts <<END
|
8
8
|
Selenium DSL
|
9
9
|
============
|
10
|
-
> selenium-dsl <script-file> [-
|
11
|
-
> sd <script-file> [-
|
10
|
+
> selenium-dsl <script-file> [-mqrsv] #OR
|
11
|
+
> sd <script-file> [-mqrsv]
|
12
12
|
--------------------------
|
13
13
|
m: mono --> no color
|
14
|
-
q: quit -->
|
14
|
+
q: quit --> close browser
|
15
|
+
r: resize --> resize browser
|
16
|
+
s: screenshot> error, screenshot!
|
15
17
|
v: verbose --> parsing output
|
16
18
|
|
19
|
+
Ex:
|
20
|
+
> sd go-test -m -q -v -r:800x600 -s:error_image
|
21
|
+
> sd go-test -mqv -r:800x600 -s:error_image
|
22
|
+
> sd go-test -mqvr:800x600 -s:error_image
|
23
|
+
> sd go-test -mqvsr:800x600
|
24
|
+
> sd go-test -qr:800x600
|
25
|
+
> sd go-test -q
|
26
|
+
> sd go-test
|
27
|
+
|
17
28
|
Script-Reference:
|
18
29
|
-----------------
|
19
30
|
eng: <string> [params] --> Commands
|
@@ -34,7 +45,7 @@ cmd: <css-cmd>[@<attr>][=~<text>] --> DQ and check node attr
|
|
34
45
|
Script-BASH-for-cron-job
|
35
46
|
------------------------
|
36
47
|
#!/bin/bash
|
37
|
-
txt=`sd my-website -
|
48
|
+
txt=`sd my-website -mqs`
|
38
49
|
if [ $? -ne 0 ]
|
39
50
|
then
|
40
51
|
echo "Error!!!"
|
data/lib/selenium_dsl.rb
CHANGED
@@ -3,7 +3,7 @@ require 'selenium_dsl/commands'
|
|
3
3
|
require 'selenium_dsl/engines'
|
4
4
|
require 'selenium_dsl/modules'
|
5
5
|
require 'selenium_dsl/macros'
|
6
|
-
|
6
|
+
require 'pry' if ARGV[1]=~/\-.*[d]/
|
7
7
|
|
8
8
|
require 'term/ansicolor'
|
9
9
|
include Term::ANSIColor
|
@@ -23,8 +23,8 @@ class SeleniumDsl
|
|
23
23
|
@mock = false
|
24
24
|
@code = {}
|
25
25
|
@path = '~'
|
26
|
-
@opt =
|
27
|
-
@r_eng = [/^(chrome|firefox|remote|
|
26
|
+
@opt = []
|
27
|
+
@r_eng = [/^(debug|chrome|firefox|phantomjs|remote|resize|visit|wait|quit|if|screenshot)/] #mock|debug|
|
28
28
|
@r_mcr = [/^\$[\-\w]+ *\=/,/^\$[\-\w]+[^\=]/]
|
29
29
|
@r_cmd = [nodes, action]
|
30
30
|
@r_mod = [/^(def +|end)/]
|
@@ -70,16 +70,28 @@ class SeleniumDsl
|
|
70
70
|
|
71
71
|
private
|
72
72
|
|
73
|
+
def opt_d
|
74
|
+
(opt=@opt.select{|x|x=~/\-\w*[d]/})==[] ? nil : opt[0]
|
75
|
+
end
|
76
|
+
|
73
77
|
def opt_m
|
74
|
-
|
78
|
+
(opt=@opt.select{|x|x=~/\-\w*[m]/})==[] ? nil : opt[0]
|
75
79
|
end
|
76
80
|
|
77
81
|
def opt_q
|
78
|
-
|
82
|
+
(opt=@opt.select{|x|x=~/\-\w*[q]/})==[] ? nil : opt[0]
|
83
|
+
end
|
84
|
+
|
85
|
+
def opt_r
|
86
|
+
(opt=@opt.select{|x|x=~/\-\w*[r]/})==[] ? nil : opt[0]
|
87
|
+
end
|
88
|
+
|
89
|
+
def opt_s
|
90
|
+
(opt=@opt.select{|x|x=~/\-\w*[s]/})==[] ? nil : opt[0]
|
79
91
|
end
|
80
92
|
|
81
93
|
def opt_v
|
82
|
-
|
94
|
+
(opt=@opt.select{|x|x=~/\-\w*[v]/})==[] ? nil : opt[0]
|
83
95
|
end
|
84
96
|
|
85
97
|
def _code_
|
@@ -131,8 +143,15 @@ class SeleniumDsl
|
|
131
143
|
puts "#{no+1}. #{tx}"
|
132
144
|
end
|
133
145
|
puts "#{l+1}. #{r[l]}" if r[l]
|
134
|
-
|
146
|
+
if (opt=opt_s)
|
147
|
+
if (arr=opt.split(':',2)).length>1
|
148
|
+
@driver.save_screenshot("#{arr[1]}.png")
|
149
|
+
else
|
150
|
+
@driver.save_screenshot("#{ARGV[0]}-error_#{l}.png")
|
151
|
+
end
|
152
|
+
end
|
135
153
|
@driver.quit if opt_q && @driver
|
154
|
+
# puts caller
|
136
155
|
Kernel.exit(1)
|
137
156
|
end
|
138
157
|
end
|
data/lib/selenium_dsl/engines.rb
CHANGED
@@ -24,13 +24,22 @@ class SeleniumDsl
|
|
24
24
|
|
25
25
|
private
|
26
26
|
def _chrome(prm)
|
27
|
-
|
27
|
+
profile = Selenium::WebDriver::Chrome::Profile.new
|
28
|
+
@driver = Selenium::WebDriver.for :chrome, :profile => profile
|
29
|
+
if (opr=opt_r) && opr=~/[:]/
|
30
|
+
res = opr.sub(/.*[:]/,'').split('x',2).collect{|x|x.to_i}
|
31
|
+
@driver.manage.window.size=Selenium::WebDriver::Dimension.new(*res)
|
32
|
+
end
|
28
33
|
end
|
29
34
|
|
30
35
|
def _firefox(prm)
|
31
36
|
profile = Selenium::WebDriver::Firefox::Profile.new
|
32
|
-
profile['browser.cache.disk.enable']
|
37
|
+
profile['browser.cache.disk.enable'] = false
|
33
38
|
@driver = Selenium::WebDriver.for :firefox, :profile => profile
|
39
|
+
if (opr=opt_r) && opr=~/[:]/
|
40
|
+
res = opr.sub(/.*[:]/,'').split('x',2).collect{|x|x.to_i}
|
41
|
+
@driver.manage.window.size=Selenium::WebDriver::Dimension.new(*res)
|
42
|
+
end
|
34
43
|
end
|
35
44
|
|
36
45
|
def _phantomjs(prm)
|
@@ -43,13 +52,24 @@ class SeleniumDsl
|
|
43
52
|
@driver = Selenium::WebDriver.for(:remote, :url => prm)
|
44
53
|
end
|
45
54
|
|
55
|
+
def _resize(prm)
|
56
|
+
res = prm.split('x',2).collect{|x|x.to_i}
|
57
|
+
@driver.manage.window.size=Selenium::WebDriver::Dimension.new(*res)
|
58
|
+
end
|
59
|
+
|
60
|
+
def _screenshot(prm)
|
61
|
+
@driver.save_screenshot(prm)
|
62
|
+
end
|
63
|
+
|
46
64
|
def _mock(prm)
|
47
65
|
@mock = true
|
48
66
|
end
|
49
67
|
|
50
|
-
|
51
|
-
|
52
|
-
|
68
|
+
if ARGV[1]=~/\-.*[d]/
|
69
|
+
def _debug(prm)
|
70
|
+
binding.pry
|
71
|
+
end
|
72
|
+
end
|
53
73
|
|
54
74
|
def _visit(prm)
|
55
75
|
_firefox('') if !@driver
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium-dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: selenium-webdriver
|