druid-ts 1.1.0 → 1.1.1
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/ChangeLog +10 -0
- data/druid.gemspec +2 -2
- data/features/html/multi_elements.html +135 -0
- data/features/multi_elements.feature +173 -0
- data/features/step_definations/multi_elements_steps.rb +296 -0
- data/features/support/env.rb +2 -0
- data/features/support/url_helper.rb +4 -0
- data/lib/druid/assist.rb +239 -198
- data/lib/druid/element_locators.rb +418 -25
- data/lib/druid/nested_elements.rb +96 -0
- data/lib/druid/page_factory.rb +87 -10
- data/lib/druid/version.rb +3 -0
- data/spec/druid/element_locators_spec.rb +147 -0
- data/spec/druid/page_factory_spec.rb +98 -0
- metadata +11 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0761839c85ebc27e562492d11f392eabb1e83ad1
|
4
|
+
data.tar.gz: 9a877989108f681df87c3070f73493411c9c523a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1720a4b821b071d87def39202fcd896750dbcc15595a498e4a3368df3336ff15dbd93dab0ecf35bb394136d2044f59228abdf31f0058a7951243dbb9d198f1b9
|
7
|
+
data.tar.gz: a5e3e348aa25f5db0bad1cce67a5aa1c938008364d502e0db89210a6e2174e256a3b420efa4917dbe488bec2b3b36d4dbf341c07a0d850373d01ce9661de22e2
|
data/ChangeLog
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
=== Version 1.1.1 / 2016-12-13
|
2
|
+
* Enhancements
|
3
|
+
* Added ?_elements to ElementLocators so you can find all elements that match an identifier
|
4
|
+
* Added ?_elements to NestedElements so you can find all elements nested within others
|
5
|
+
|
6
|
+
=== 2016-11-15
|
7
|
+
* Enhancements
|
8
|
+
* Added #navigate_to method to PageFactory to navigate to a page through previous pages
|
9
|
+
* Added routes to PageFactory to collect routes through the site
|
10
|
+
* Added #continue_navigation_to method to PageFactory which begins at @current_page
|
1
11
|
******1.1.0******
|
2
12
|
=== 2016-11-14
|
3
13
|
* Enhancements
|
data/druid.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "druid-ts"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.version = Druid::VERSION
|
9
|
-
s.date = '2016-
|
9
|
+
s.date = '2016-11-15'
|
10
10
|
s.authors = ["Tim Sheng"]
|
11
11
|
s.email = ["278570038@qq.com"]
|
12
12
|
s.homepage = "http://github.com/timsheng/druid"
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f)}
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
-
s.add_dependency "watir-webdriver", "
|
22
|
+
s.add_dependency "watir-webdriver", ">= 0.9.1"
|
23
23
|
s.add_development_dependency "rspec", ">= 3.4.0"
|
24
24
|
s.add_development_dependency "cucumber", ">= 1.3.20"
|
25
25
|
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Multi Elements Page</title>
|
4
|
+
</head>
|
5
|
+
<body>
|
6
|
+
<input class='button' type="submit" value="Button 1"/>
|
7
|
+
<input class='button' type="submit" value="Button 2"/>
|
8
|
+
<input class='button' type="submit" value="Button 3"/>
|
9
|
+
|
10
|
+
<input class='textfield' size='40' type='text' value='text 1'/>
|
11
|
+
<input class='textfield' size='40' type='text' value='text 2'/>
|
12
|
+
<input class='textfield' size='40' type='text' value='text 3'/>
|
13
|
+
|
14
|
+
<input class="hiddenfield" size="40" type="hidden" value="hidden 1"/>
|
15
|
+
<input class="hiddenfield" size="40" type="hidden" value="hidden 2"/>
|
16
|
+
<input class="hiddenfield" size="40" type="hidden" value="hidden 3"/>
|
17
|
+
|
18
|
+
<textarea rows="2" cols="20" class="textarea">textarea 1</textarea>
|
19
|
+
<textarea rows="2" cols="20" class="textarea">textarea 2</textarea>
|
20
|
+
<textarea rows="2" cols="20" class="textarea">textarea 3</textarea>
|
21
|
+
|
22
|
+
<select class="selectlist">
|
23
|
+
<option value="selectlist 1">Option 1</option>
|
24
|
+
</select>
|
25
|
+
<select class="selectlist">
|
26
|
+
<option value="selectlist 2">Option 2</option>
|
27
|
+
</select>
|
28
|
+
<select class="selectlist">
|
29
|
+
<option value="selectlist 3">Option 3</option>
|
30
|
+
</select>
|
31
|
+
|
32
|
+
<a href="blah.html" class="link">link 1</a>
|
33
|
+
<a href="blah.html" class="link">link 2</a>
|
34
|
+
<a href="blah.html" class="link">link 3</a>
|
35
|
+
|
36
|
+
<input class="checkbox" type="checkbox" value="checkbox 1"/>
|
37
|
+
<input class="checkbox" type="checkbox" value="checkbox 2"/>
|
38
|
+
<input class="checkbox" type="checkbox" value="checkbox 3"/>
|
39
|
+
|
40
|
+
<input type="radio" class="radio" value="radio 1">
|
41
|
+
<input type="radio" class="radio" value="radio 2">
|
42
|
+
<input type="radio" class="radio" value="radio 3">
|
43
|
+
|
44
|
+
<div class="div">Div 1</div>
|
45
|
+
<div class="div">Div 2</div>
|
46
|
+
<div class="div">Div 3</div>
|
47
|
+
|
48
|
+
<span class="span">Span 1</span>
|
49
|
+
<span class="span">Span 2</span>
|
50
|
+
<span class="span">Span 3</span>
|
51
|
+
|
52
|
+
<table class="table" border='1'>
|
53
|
+
<tr>
|
54
|
+
<td class="td">Data 1</td>
|
55
|
+
<td class="td">Data 2</td>
|
56
|
+
<td class="td">Data 3</td>
|
57
|
+
</tr>
|
58
|
+
</table>
|
59
|
+
|
60
|
+
<table class="table" border='1'>
|
61
|
+
<tr>
|
62
|
+
<td>Data 4</td>
|
63
|
+
<td>Data 5</td>
|
64
|
+
<td>Data 6</td>
|
65
|
+
</tr>
|
66
|
+
</table>
|
67
|
+
|
68
|
+
<table class="table" border='1'>
|
69
|
+
<tr>
|
70
|
+
<td>Data 7</td>
|
71
|
+
<td>Data 8</td>
|
72
|
+
<td>Data 9</td>
|
73
|
+
</tr>
|
74
|
+
</table>
|
75
|
+
|
76
|
+
<img src="images/circle.png" class="image" alt="image 1">
|
77
|
+
<img src="images/circle.png" class="image" alt="image 2">
|
78
|
+
<img src="images/circle.png" class="image" alt="image 3">
|
79
|
+
|
80
|
+
<form method="get" class="form" action="form1"></form>
|
81
|
+
<form method="get" class="form" action="form2"></form>
|
82
|
+
<form method="get" class="form" action="form3"></form>
|
83
|
+
|
84
|
+
<ul class="ul">
|
85
|
+
<li class="li">Item One</li>
|
86
|
+
<li class="li">Item Two</li>
|
87
|
+
<li class="li">Item Three</li>
|
88
|
+
</ul>
|
89
|
+
<ul class="ul">
|
90
|
+
<li>Item Four</li>
|
91
|
+
</ul>
|
92
|
+
<ul class="ul">
|
93
|
+
<li>Item Five</li>
|
94
|
+
</ul>
|
95
|
+
|
96
|
+
<ol class="ol">
|
97
|
+
<li>Number One</li>
|
98
|
+
</ol>
|
99
|
+
<ol class="ol">
|
100
|
+
<li>Number Two</li>
|
101
|
+
</ol>
|
102
|
+
<ol class="ol">
|
103
|
+
<li>Number Three</li>
|
104
|
+
</ol>
|
105
|
+
|
106
|
+
<h1 class="h1">H1 One</h1>
|
107
|
+
<h1 class="h1">H1 Two</h1>
|
108
|
+
<h1 class="h1">H1 Three</h1>
|
109
|
+
|
110
|
+
<h2 class="h2">H2 One</h2>
|
111
|
+
<h2 class="h2">H2 Two</h2>
|
112
|
+
<h2 class="h2">H2 Three</h2>
|
113
|
+
|
114
|
+
<h3 class="h3">H3 One</h3>
|
115
|
+
<h3 class="h3">H3 Two</h3>
|
116
|
+
<h3 class="h3">H3 Three</h3>
|
117
|
+
|
118
|
+
<h4 class="h4">H4 One</h4>
|
119
|
+
<h4 class="h4">H4 Two</h4>
|
120
|
+
<h4 class="h4">H4 Three</h4>
|
121
|
+
|
122
|
+
<h5 class="h5">H5 One</h5>
|
123
|
+
<h5 class="h5">H5 Two</h5>
|
124
|
+
<h5 class="h5">H5 Three</h5>
|
125
|
+
|
126
|
+
<h6 class="h6">H6 One</h6>
|
127
|
+
<h6 class="h6">H6 Two</h6>
|
128
|
+
<h6 class="h6">H6 Three</h6>
|
129
|
+
|
130
|
+
<p class="p">Paragraph One</p>
|
131
|
+
<p class="p">Paragraph Two</p>
|
132
|
+
<p class="p">Paragraph Three</p>
|
133
|
+
|
134
|
+
</body>
|
135
|
+
</html>
|
@@ -0,0 +1,173 @@
|
|
1
|
+
Feature: Multi Elements
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I am on the multi elements page
|
5
|
+
|
6
|
+
Scenario: Selecting buttons
|
7
|
+
When I select the buttons with class "button"
|
8
|
+
Then I should have 3 buttons
|
9
|
+
And the value of button 1 should be "Button 1"
|
10
|
+
And the value of button 2 should be "Button 2"
|
11
|
+
And the value of button 3 should be "Button 3"
|
12
|
+
|
13
|
+
|
14
|
+
Scenario: Selecting text_fields
|
15
|
+
When I select the text fields with class "textfield"
|
16
|
+
Then I should have 3 text fields
|
17
|
+
And the value of text field 1 should be "text 1"
|
18
|
+
And the value of text field 2 should be "text 2"
|
19
|
+
And the value of text field 3 should be "text 3"
|
20
|
+
|
21
|
+
Scenario: Selecting hidden_fields
|
22
|
+
When I select the hidden fields with class "hiddenfield"
|
23
|
+
Then I should have 3 hidden fields
|
24
|
+
And the value of hidden field 1 should be "hidden 1"
|
25
|
+
And the value of hidden field 2 should be "hidden 2"
|
26
|
+
And the value of hidden field 3 should be "hidden 3"
|
27
|
+
|
28
|
+
Scenario: Selecting text_areas
|
29
|
+
When I select the text areas with class "textarea"
|
30
|
+
Then I should have 3 text areas
|
31
|
+
And the value of text area 1 should be "textarea 1"
|
32
|
+
And the value of text area 2 should be "textarea 2"
|
33
|
+
And the value of text area 3 should be "textarea 3"
|
34
|
+
|
35
|
+
Scenario: Selecting select_lists
|
36
|
+
When I select the select lists with class "selectlist"
|
37
|
+
Then I should have 3 select lists
|
38
|
+
And the value of select list 1 should be "selectlist 1"
|
39
|
+
And the value of select list 2 should be "selectlist 2"
|
40
|
+
And the value of select list 3 should be "selectlist 3"
|
41
|
+
|
42
|
+
Scenario: Selecting links
|
43
|
+
When I select the link with class "link"
|
44
|
+
Then I should have 3 links
|
45
|
+
And the text of link 1 should be "link 1"
|
46
|
+
And the text of link 2 should be "link 2"
|
47
|
+
And the text of link 3 should be "link 3"
|
48
|
+
|
49
|
+
Scenario: Selecting checkboxes
|
50
|
+
When I select the check boxes with class "checkbox"
|
51
|
+
Then I should have 3 checkboxes
|
52
|
+
And the value of checkbox 1 should be "checkbox 1"
|
53
|
+
And the value of checkbox 2 should be "checkbox 2"
|
54
|
+
And the value of checkbox 3 should be "checkbox 3"
|
55
|
+
|
56
|
+
Scenario: Selecting radio buttons
|
57
|
+
When I select the radio buttons with class "radio"
|
58
|
+
Then I should have 3 radio buttons
|
59
|
+
And the value of radio button 1 should be "radio 1"
|
60
|
+
And the value of radio button 2 should be "radio 2"
|
61
|
+
And the value of radio button 3 should be "radio 3"
|
62
|
+
|
63
|
+
Scenario: Selecting divs
|
64
|
+
When I select the divs with class "div"
|
65
|
+
Then I should have 3 divs
|
66
|
+
And the text of div 1 should be "Div 1"
|
67
|
+
And the text of div 2 should be "Div 2"
|
68
|
+
And the text of div 3 should be "Div 3"
|
69
|
+
|
70
|
+
Scenario: Selecting spans
|
71
|
+
When I select the spans with class "span"
|
72
|
+
Then I should have 3 spans
|
73
|
+
And the text of span 1 should be "Span 1"
|
74
|
+
And the text of span 2 should be "Span 2"
|
75
|
+
And the text of span 3 should be "Span 3"
|
76
|
+
|
77
|
+
Scenario: Selecting tables
|
78
|
+
When I select the tables with class "table"
|
79
|
+
Then I should have 3 tables
|
80
|
+
And the first row first column for table 1 should have "Data 1"
|
81
|
+
And the first row first column for table 2 should have "Data 4"
|
82
|
+
And the first row first column for table 3 should have "Data 7"
|
83
|
+
|
84
|
+
Scenario: Selecting cells
|
85
|
+
When I select the cells with class "td"
|
86
|
+
Then I should have 3 cells
|
87
|
+
And the text for cell 1 should be "Data 1"
|
88
|
+
And the text for cell 2 should be "Data 2"
|
89
|
+
And the text for cell 3 should be "Data 3"
|
90
|
+
|
91
|
+
Scenario: Selecting images
|
92
|
+
When I select the images with class "image"
|
93
|
+
Then I should have 3 images
|
94
|
+
And the alt for image 1 should be "image 1"
|
95
|
+
And the alt for image 2 should be "image 2"
|
96
|
+
And the alt for image 3 should be "image 3"
|
97
|
+
|
98
|
+
Scenario: Selecting forms
|
99
|
+
When I select the forms with class "form"
|
100
|
+
Then I should have 3 forms
|
101
|
+
And the action for form 1 should be "form1"
|
102
|
+
And the action for form 2 should be "form2"
|
103
|
+
And the action for form 3 should be "form3"
|
104
|
+
|
105
|
+
Scenario: Selecting list items
|
106
|
+
When I select the list items with class "li"
|
107
|
+
Then I should have 3 list items
|
108
|
+
And the text for list item 1 should be "Item One"
|
109
|
+
And the text for list item 2 should be "Item Two"
|
110
|
+
And the text for list item 3 should be "Item Three"
|
111
|
+
|
112
|
+
Scenario: Selecting unordered lists
|
113
|
+
When I select the unordered lists with class "ul"
|
114
|
+
Then I should have 3 unordered lists
|
115
|
+
And the text for the first item in unordered list 1 should be "Item One"
|
116
|
+
And the text for the first item in unordered list 2 should be "Item Four"
|
117
|
+
And the text for the first item in unordered list 3 should be "Item Five"
|
118
|
+
|
119
|
+
Scenario: Selecting ordered lists
|
120
|
+
When I select the ordered lists with class "ol"
|
121
|
+
Then I should have 3 ordered lists
|
122
|
+
And the text for the first item in ordered list 1 should be "Number One"
|
123
|
+
And the text for the first item in ordered list 2 should be "Number Two"
|
124
|
+
And the text for the first item in ordered list 3 should be "Number Three"
|
125
|
+
|
126
|
+
Scenario: Selecting h1s
|
127
|
+
When I select the h1s with class "h1"
|
128
|
+
Then I should have 3 h1s
|
129
|
+
And the text for h1 1 should be "H1 One"
|
130
|
+
And the text for h1 2 should be "H1 Two"
|
131
|
+
And the text for h1 3 should be "H1 Three"
|
132
|
+
|
133
|
+
Scenario: Selecting h2s
|
134
|
+
When I select the h2s with class "h2"
|
135
|
+
Then I should have 3 h2s
|
136
|
+
And the text for h2 1 should be "H2 One"
|
137
|
+
And the text for h2 2 should be "H2 Two"
|
138
|
+
And the text for h2 3 should be "H2 Three"
|
139
|
+
|
140
|
+
Scenario: Selecting h3s
|
141
|
+
When I select the h3s with class "h3"
|
142
|
+
Then I should have 3 h3s
|
143
|
+
And the text for h3 1 should be "H3 One"
|
144
|
+
And the text for h3 2 should be "H3 Two"
|
145
|
+
And the text for h3 3 should be "H3 Three"
|
146
|
+
|
147
|
+
Scenario: Selecting h4s
|
148
|
+
When I select the h4s with class "h4"
|
149
|
+
Then I should have 3 h4s
|
150
|
+
And the text for h4 1 should be "H4 One"
|
151
|
+
And the text for h4 2 should be "H4 Two"
|
152
|
+
And the text for h4 3 should be "H4 Three"
|
153
|
+
|
154
|
+
Scenario: Selecting h5s
|
155
|
+
When I select the h5s with class "h5"
|
156
|
+
Then I should have 3 h5s
|
157
|
+
And the text for h5 1 should be "H5 One"
|
158
|
+
And the text for h5 2 should be "H5 Two"
|
159
|
+
And the text for h5 3 should be "H5 Three"
|
160
|
+
|
161
|
+
Scenario: Selecting h6s
|
162
|
+
When I select the h6s with class "h6"
|
163
|
+
Then I should have 3 h6s
|
164
|
+
And the text for h6 1 should be "H6 One"
|
165
|
+
And the text for h6 2 should be "H6 Two"
|
166
|
+
And the text for h6 3 should be "H6 Three"
|
167
|
+
|
168
|
+
Scenario: Selecting paragraphs
|
169
|
+
When I select the paragraphs with class "p"
|
170
|
+
Then I should have 3 paragraphs
|
171
|
+
And the text for paragraph 1 should be "Paragraph One"
|
172
|
+
And the text for paragraph 2 should be "Paragraph Two"
|
173
|
+
And the text for paragraph 3 should be "Paragraph Three"
|
@@ -0,0 +1,296 @@
|
|
1
|
+
class MultiElementsPage
|
2
|
+
include Druid
|
3
|
+
end
|
4
|
+
|
5
|
+
Given(/^I am on the multi elements page$/) do
|
6
|
+
@page = MultiElementsPage.new(@driver)
|
7
|
+
@page.navigate_to(UrlHelper.multi)
|
8
|
+
end
|
9
|
+
|
10
|
+
When(/^I select the buttons with class "([^"]*)"$/) do |class_name|
|
11
|
+
@elements = @page.button_elements(:class => class_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
Then(/^I should have (\d+) buttons$/) do |num_buttons|
|
15
|
+
expect(@elements.size).to eql num_buttons.to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
Then(/^the value of button (\d+) should be "([^"]*)"$/) do |button_num, value|
|
19
|
+
expect(@elements[button_num.to_i - 1].value).to eql value
|
20
|
+
end
|
21
|
+
|
22
|
+
When(/^I select the text fields with class "([^"]*)"$/) do |class_name|
|
23
|
+
@elements = @page.text_field_elements(:class => class_name)
|
24
|
+
end
|
25
|
+
|
26
|
+
Then(/^I should have (\d+) text fields$/) do |num_text_fields|
|
27
|
+
expect(@elements.size).to eql num_text_fields.to_i
|
28
|
+
end
|
29
|
+
|
30
|
+
Then(/^the value of text field (\d+) should be "([^"]*)"$/) do |text_field_num, value|
|
31
|
+
expect(@elements[text_field_num.to_i - 1].value).to eql value
|
32
|
+
end
|
33
|
+
|
34
|
+
When(/^I select the hidden fields with class "([^"]*)"$/) do |class_name|
|
35
|
+
@elements = @page.hidden_field_elements(:class => class_name)
|
36
|
+
end
|
37
|
+
|
38
|
+
Then(/^I should have (\d+) hidden fields$/) do |num_hidden_fields|
|
39
|
+
expect(@elements.size).to eql num_hidden_fields.to_i
|
40
|
+
end
|
41
|
+
|
42
|
+
Then(/^the value of hidden field (\d+) should be "([^"]*)"$/) do |hidden_field_num, value|
|
43
|
+
expect(@elements[hidden_field_num.to_i - 1].value).to eql value
|
44
|
+
end
|
45
|
+
|
46
|
+
When(/^I select the text areas with class "([^"]*)"$/) do |class_name|
|
47
|
+
@elements = @page.text_area_elements(:class => class_name)
|
48
|
+
end
|
49
|
+
|
50
|
+
Then(/^I should have (\d+) text areas$/) do |num_text_areas|
|
51
|
+
expect(@elements.size).to eql num_text_areas.to_i
|
52
|
+
end
|
53
|
+
|
54
|
+
Then(/^the value of text area (\d+) should be "([^"]*)"$/) do |text_area_num, value|
|
55
|
+
expect(@elements[text_area_num.to_i - 1].value).to eql value
|
56
|
+
end
|
57
|
+
|
58
|
+
When(/^I select the select lists with class "([^"]*)"$/) do |class_name|
|
59
|
+
@elements = @page.select_list_elements(:class => class_name)
|
60
|
+
end
|
61
|
+
|
62
|
+
Then(/^I should have (\d+) select lists$/) do |num_select_lists|
|
63
|
+
expect(@elements.size).to eql num_select_lists.to_i
|
64
|
+
end
|
65
|
+
|
66
|
+
Then(/^the value of select list (\d+) should be "([^"]*)"$/) do |select_list_num, value|
|
67
|
+
expect(@elements[select_list_num.to_i - 1].value).to eql value
|
68
|
+
end
|
69
|
+
|
70
|
+
When(/^I select the link with class "([^"]*)"$/) do |class_name|
|
71
|
+
@elements = @page.link_elements(:class => class_name)
|
72
|
+
end
|
73
|
+
|
74
|
+
Then(/^I should have (\d+) links$/) do |num_links|
|
75
|
+
expect(@elements.size).to eql num_links.to_i
|
76
|
+
end
|
77
|
+
|
78
|
+
Then(/^the text of link (\d+) should be "([^"]*)"$/) do |link_num, text|
|
79
|
+
expect(@elements[link_num.to_i - 1].text).to eql text
|
80
|
+
end
|
81
|
+
|
82
|
+
When(/^I select the check boxes with class "([^"]*)"$/) do |class_name|
|
83
|
+
@elements = @page.checkbox_elements(:class => class_name)
|
84
|
+
end
|
85
|
+
|
86
|
+
Then(/^I should have (\d+) checkboxes$/) do |num_checkboxes|
|
87
|
+
expect(@elements.size).to eql num_checkboxes.to_i
|
88
|
+
end
|
89
|
+
|
90
|
+
Then(/^the value of checkbox (\d+) should be "([^"]*)"$/) do |checkbox_num, value|
|
91
|
+
expect(@elements[checkbox_num.to_i - 1].value).to eql value
|
92
|
+
end
|
93
|
+
|
94
|
+
When(/^I select the radio buttons with class "([^"]*)"$/) do |class_name|
|
95
|
+
@elements = @page.radio_button_elements(:class => class_name)
|
96
|
+
end
|
97
|
+
|
98
|
+
Then(/^I should have (\d+) radio buttons$/) do |num_radio_buttons|
|
99
|
+
expect(@elements.size).to eql num_radio_buttons.to_i
|
100
|
+
end
|
101
|
+
|
102
|
+
Then(/^the value of radio button (\d+) should be "([^"]*)"$/) do |radio_button_num, value|
|
103
|
+
expect(@elements[radio_button_num.to_i - 1].value).to eql value
|
104
|
+
end
|
105
|
+
|
106
|
+
When(/^I select the divs with class "([^"]*)"$/) do |class_name|
|
107
|
+
@elements = @page.div_elements(:class => class_name)
|
108
|
+
end
|
109
|
+
|
110
|
+
Then(/^I should have (\d+) divs$/) do |num_divs|
|
111
|
+
expect(@elements.size).to eql num_divs.to_i
|
112
|
+
end
|
113
|
+
|
114
|
+
Then(/^the text of div (\d+) should be "([^"]*)"$/) do |div_num, text|
|
115
|
+
expect(@elements[div_num.to_i - 1].text).to eql text
|
116
|
+
end
|
117
|
+
|
118
|
+
When(/^I select the spans with class "([^"]*)"$/) do |class_name|
|
119
|
+
@elements = @page.span_elements(:class => class_name)
|
120
|
+
end
|
121
|
+
|
122
|
+
Then(/^I should have (\d+) spans$/) do |num_spans|
|
123
|
+
expect(@elements.size).to eql num_spans.to_i
|
124
|
+
end
|
125
|
+
|
126
|
+
Then(/^the text of span (\d+) should be "([^"]*)"$/) do |span_num, text|
|
127
|
+
expect(@elements[span_num.to_i - 1].text).to eql text
|
128
|
+
end
|
129
|
+
|
130
|
+
When(/^I select the tables with class "([^"]*)"$/) do |class_name|
|
131
|
+
@elements = @page.table_elements(:class => class_name)
|
132
|
+
end
|
133
|
+
|
134
|
+
Then(/^I should have (\d+) tables$/) do |num_tables|
|
135
|
+
expect(@elements.size).to eql num_tables.to_i
|
136
|
+
end
|
137
|
+
|
138
|
+
Then(/^the first row first column for table (\d+) should have "([^"]*)"$/) do |table_num, text|
|
139
|
+
expect(@elements[table_num.to_i - 1][0][0].text).to eql text
|
140
|
+
end
|
141
|
+
|
142
|
+
When(/^I select the cells with class "([^"]*)"$/) do |class_name|
|
143
|
+
@elements = @page.cell_elements(:class => class_name)
|
144
|
+
end
|
145
|
+
|
146
|
+
Then(/^I should have (\d+) cells$/) do |num_cells|
|
147
|
+
expect(@elements.size).to eql num_cells.to_i
|
148
|
+
end
|
149
|
+
|
150
|
+
Then(/^the text for cell (\d+) should be "([^"]*)"$/) do |cell_num, text|
|
151
|
+
expect(@elements[cell_num.to_i - 1].text).to eql text
|
152
|
+
end
|
153
|
+
|
154
|
+
When(/^I select the images with class "([^"]*)"$/) do |class_name|
|
155
|
+
@elements = @page.image_elements(:class => class_name)
|
156
|
+
end
|
157
|
+
|
158
|
+
Then(/^I should have (\d+) images$/) do |num_images|
|
159
|
+
expect(@elements.size).to eql num_images.to_i
|
160
|
+
end
|
161
|
+
|
162
|
+
Then(/^the alt for image (\d+) should be "([^"]*)"$/) do |image_num , alt|
|
163
|
+
expect(@elements[image_num.to_i - 1].attribute(:alt)).to eql alt
|
164
|
+
end
|
165
|
+
|
166
|
+
When(/^I select the forms with class "([^"]*)"$/) do |class_name|
|
167
|
+
@elements = @page.form_elements(:class => class_name)
|
168
|
+
end
|
169
|
+
|
170
|
+
Then(/^I should have (\d+) forms$/) do |num_forms|
|
171
|
+
expect(@elements.size).to eql num_forms.to_i
|
172
|
+
end
|
173
|
+
|
174
|
+
Then(/^the action for form (\d+) should be "([^"]*)"$/) do |form_num, action|
|
175
|
+
expect(@elements[form_num.to_i - 1].attribute(:action)).to match action
|
176
|
+
end
|
177
|
+
|
178
|
+
When(/^I select the list items with class "([^"]*)"$/) do |class_name|
|
179
|
+
@elements = @page.list_item_elements(:class => class_name)
|
180
|
+
end
|
181
|
+
|
182
|
+
Then(/^I should have (\d+) list items$/) do |num_list_items|
|
183
|
+
expect(@elements.size).to eql num_list_items.to_i
|
184
|
+
end
|
185
|
+
|
186
|
+
Then(/^the text for list item (\d+) should be "([^"]*)"$/) do |list_item_num, text|
|
187
|
+
expect(@elements[list_item_num.to_i - 1].text).to eql text
|
188
|
+
end
|
189
|
+
|
190
|
+
When(/^I select the unordered lists with class "([^"]*)"$/) do |class_name|
|
191
|
+
@elements = @page.unordered_list_elements(:class => class_name)
|
192
|
+
end
|
193
|
+
|
194
|
+
Then(/^I should have (\d+) unordered lists$/) do |num_unordered_list|
|
195
|
+
expect(@elements.size).to eql num_unordered_list.to_i
|
196
|
+
end
|
197
|
+
|
198
|
+
Then(/^the text for the first item in unordered list (\d+) should be "([^"]*)"$/) do |ul_num, text|
|
199
|
+
expect(@elements[ul_num.to_i - 1][0].text).to eql text
|
200
|
+
end
|
201
|
+
|
202
|
+
When(/^I select the ordered lists with class "([^"]*)"$/) do |class_name|
|
203
|
+
@elements = @page.ordered_list_elements(:class => class_name)
|
204
|
+
end
|
205
|
+
|
206
|
+
Then(/^I should have (\d+) ordered lists$/) do |num_ol|
|
207
|
+
expect(@elements.size).to eql num_ol.to_i
|
208
|
+
end
|
209
|
+
|
210
|
+
Then(/^the text for the first item in ordered list (\d+) should be "([^"]*)"$/) do |ol_num, text|
|
211
|
+
expect(@elements[ol_num.to_i - 1][0].text).to eql text
|
212
|
+
end
|
213
|
+
|
214
|
+
When(/^I select the h1s with class "([^"]*)"$/) do |class_name|
|
215
|
+
@elements = @page.h1_elements(:class => class_name)
|
216
|
+
end
|
217
|
+
|
218
|
+
Then(/^I should have (\d+) h1s$/) do |num_h1s|
|
219
|
+
expect(@elements.size).to eql num_h1s.to_i
|
220
|
+
end
|
221
|
+
|
222
|
+
Then(/^the text for h1 (\d+) should be "([^"]*)"$/) do |h1_num, text|
|
223
|
+
expect(@elements[h1_num.to_i - 1].text).to eql text
|
224
|
+
end
|
225
|
+
|
226
|
+
When(/^I select the h2s with class "([^"]*)"$/) do |class_name|
|
227
|
+
@elements = @page.h2_elements(:class => class_name)
|
228
|
+
end
|
229
|
+
|
230
|
+
Then(/^I should have (\d+) h2s$/) do |num_h2s|
|
231
|
+
expect(@elements.size).to eql num_h2s.to_i
|
232
|
+
end
|
233
|
+
|
234
|
+
Then(/^the text for h2 (\d+) should be "([^"]*)"$/) do |h2_num, text|
|
235
|
+
expect(@elements[h2_num.to_i - 1].text).to eql text
|
236
|
+
end
|
237
|
+
|
238
|
+
When(/^I select the h3s with class "([^"]*)"$/) do |class_name|
|
239
|
+
@elements = @page.h3_elements(:class => class_name)
|
240
|
+
end
|
241
|
+
|
242
|
+
Then(/^I should have (\d+) h3s$/) do |num_h3s|
|
243
|
+
expect(@elements.size).to eql num_h3s.to_i
|
244
|
+
end
|
245
|
+
|
246
|
+
Then(/^the text for h3 (\d+) should be "([^"]*)"$/) do |h3_num, text|
|
247
|
+
expect(@elements[h3_num.to_i - 1].text).to eql text
|
248
|
+
end
|
249
|
+
|
250
|
+
When(/^I select the h4s with class "([^"]*)"$/) do |class_name|
|
251
|
+
@elements = @page.h4_elements(:class => class_name)
|
252
|
+
end
|
253
|
+
|
254
|
+
Then(/^I should have (\d+) h4s$/) do |num_h4s|
|
255
|
+
expect(@elements.size).to eql num_h4s.to_i
|
256
|
+
end
|
257
|
+
|
258
|
+
Then(/^the text for h4 (\d+) should be "([^"]*)"$/) do |h4_num, text|
|
259
|
+
expect(@elements[h4_num.to_i - 1].text).to eql text
|
260
|
+
end
|
261
|
+
|
262
|
+
When(/^I select the h5s with class "([^"]*)"$/) do |class_name|
|
263
|
+
@elements = @page.h5_elements(:class => class_name)
|
264
|
+
end
|
265
|
+
|
266
|
+
Then(/^I should have (\d+) h5s$/) do |num_h5s|
|
267
|
+
expect(@elements.size).to eql num_h5s.to_i
|
268
|
+
end
|
269
|
+
|
270
|
+
Then(/^the text for h5 (\d+) should be "([^"]*)"$/) do |h5_num, text|
|
271
|
+
expect(@elements[h5_num.to_i - 1].text).to eql text
|
272
|
+
end
|
273
|
+
|
274
|
+
When(/^I select the h6s with class "([^"]*)"$/) do |class_name|
|
275
|
+
@elements = @page.h6_elements(:class => class_name)
|
276
|
+
end
|
277
|
+
|
278
|
+
Then(/^I should have (\d+) h6s$/) do |num_h6s|
|
279
|
+
expect(@elements.size).to eql num_h6s.to_i
|
280
|
+
end
|
281
|
+
|
282
|
+
Then(/^the text for h6 (\d+) should be "([^"]*)"$/) do |h6_num, text|
|
283
|
+
expect(@elements[h6_num.to_i - 1].text).to eql text
|
284
|
+
end
|
285
|
+
|
286
|
+
When(/^I select the paragraphs with class "([^"]*)"$/) do |class_name|
|
287
|
+
@elements = @page.paragraph_elements(:class => class_name)
|
288
|
+
end
|
289
|
+
|
290
|
+
Then(/^I should have (\d+) paragraphs$/) do |num_paragraphs|
|
291
|
+
expect(@elements.size).to eql num_paragraphs.to_i
|
292
|
+
end
|
293
|
+
|
294
|
+
Then(/^the text for paragraph (\d+) should be "([^"]*)"$/) do |paragraph_num, text|
|
295
|
+
expect(@elements[paragraph_num.to_i - 1].text).to eql text
|
296
|
+
end
|