druid-ts 1.1.8 → 1.2.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/ChangeLog +27 -0
- data/features/bold.feature +21 -0
- data/features/element.feature +7 -0
- data/features/frames.feature +15 -0
- data/features/html/frames.html +3 -3
- data/features/html/iframes.html +2 -2
- data/features/html/multi_elements.html +1 -0
- data/features/html/static_elements.html +25 -8
- data/features/javascript.feature +10 -1
- data/features/link.feature +4 -0
- data/features/multi_elements.feature +6 -0
- data/features/radio_button_group.feature +28 -0
- data/features/section.feature +128 -0
- data/features/select_list.feature +4 -0
- data/features/step_definations/bold_steps.rb +11 -0
- data/features/step_definations/element_steps.rb +8 -0
- data/features/step_definations/frame_steps.rb +53 -11
- data/features/step_definations/javasript_steps.rb +9 -0
- data/features/step_definations/link_steps.rb +8 -0
- data/features/step_definations/multi_elements_steps.rb +13 -0
- data/features/step_definations/radio_button_group_steps.rb +32 -0
- data/features/step_definations/section_steps.rb +262 -0
- data/features/step_definations/table_steps.rb +9 -0
- data/features/support/env.rb +1 -0
- data/features/support/page.rb +16 -5
- data/features/table.feature +18 -14
- data/lib/druid.rb +42 -30
- data/lib/druid/accessors.rb +188 -55
- data/lib/druid/assist.rb +46 -4
- data/lib/druid/elements.rb +1 -0
- data/lib/druid/elements/bold.rb +8 -0
- data/lib/druid/elements/element.rb +16 -3
- data/lib/druid/elements/link.rb +7 -0
- data/lib/druid/elements/radio_button.rb +0 -7
- data/lib/druid/elements/select_list.rb +2 -2
- data/lib/druid/elements/table.rb +7 -0
- data/lib/druid/javascript/angularjs.rb +12 -0
- data/lib/druid/javascript_framework_facade.rb +5 -3
- data/lib/druid/locator_generator.rb +1 -0
- data/lib/druid/page_factory.rb +1 -0
- data/lib/druid/page_populator.rb +10 -1
- data/lib/druid/sections.rb +29 -0
- data/lib/druid/version.rb +1 -1
- data/spec/druid/accessors_spec.rb +79 -13
- data/spec/druid/druid_spec.rb +2 -1
- data/spec/druid/element_locators_spec.rb +26 -4
- data/spec/druid/elements/bold_spec.rb +21 -0
- data/spec/druid/elements/link_spec.rb +1 -1
- data/spec/druid/elements/page_factory_spec.rb +2 -2
- data/spec/druid/elements/radio_button_spec.rb +0 -5
- data/spec/druid/elements/select_list_spec.rb +3 -3
- data/spec/druid/page_factory_spec.rb +15 -15
- data/spec/druid/page_populator_spec.rb +4 -4
- data/spec/druid/page_section_spec.rb +61 -0
- data/spec/spec_helper.rb +1 -0
- metadata +20 -1
@@ -41,3 +41,12 @@ end
|
|
41
41
|
Then(/^I should get the answer "([^"]*)"$/) do |answer|
|
42
42
|
expect(@answer).to eql answer.to_i
|
43
43
|
end
|
44
|
+
|
45
|
+
When(/^I execute the javascript "([^"]*)" with an argument of "([^"]*)"$/) do |script, arg|
|
46
|
+
@answer = @page.execute_script script, arg
|
47
|
+
end
|
48
|
+
|
49
|
+
When(/^I execute the javascript "([^"]*)" with a text field argument$/) do |script|
|
50
|
+
text_field = @page.text_field_element(:id => 'text_field_id')
|
51
|
+
@page.execute_script(script, text_field)
|
52
|
+
end
|
@@ -32,3 +32,11 @@ When(/^I select a link while the script is executing$/) do
|
|
32
32
|
link = @page.link_element(:id => 'link_id')
|
33
33
|
link.click
|
34
34
|
end
|
35
|
+
|
36
|
+
When(/^I get the href for the link$/) do
|
37
|
+
@href = @page.google_search_id_element.href
|
38
|
+
end
|
39
|
+
|
40
|
+
Then(/^I should know it was "([^"]*)"$/) do |href|
|
41
|
+
expect(@href).to include href
|
42
|
+
end
|
@@ -31,6 +31,7 @@ class MultiElementsPage
|
|
31
31
|
divs(:block_divs) do |page|
|
32
32
|
page.div_elements(:class => 'div')
|
33
33
|
end
|
34
|
+
b(:bs)
|
34
35
|
end
|
35
36
|
|
36
37
|
Given(/^I am on the multi elements page$/) do
|
@@ -525,3 +526,15 @@ end
|
|
525
526
|
When(/^I select the multiple elements with a tag label$/) do
|
526
527
|
@elements = @page.generic_label_elements
|
527
528
|
end
|
529
|
+
|
530
|
+
When(/^I select the bs$/) do
|
531
|
+
@elements = @page.b_elements
|
532
|
+
end
|
533
|
+
|
534
|
+
Then(/^I should have (\d+) bs$/) do |num_bs|
|
535
|
+
expect(@elements.size).to eql num_bs.to_i
|
536
|
+
end
|
537
|
+
|
538
|
+
Then(/^the text for b (\d+) should be "([^"]*)"$/) do |b_num, text|
|
539
|
+
expect(@elements[b_num.to_i - 1].text).to eql text
|
540
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
Then(/^I should see that the radio button group exists$/) do
|
2
|
+
expect(@page.favorite_cheese?).to be true
|
3
|
+
end
|
4
|
+
|
5
|
+
Then(/^no radio buttons should be selected in the group$/) do
|
6
|
+
expect(@page.favorite_cheese_selected?).to be false
|
7
|
+
end
|
8
|
+
|
9
|
+
When(/^I select the "([^"]*)" radio button in the group$/) do |how|
|
10
|
+
@page.select_favorite_cheese("#{how}")
|
11
|
+
end
|
12
|
+
|
13
|
+
Then(/^the "([^"]*)" radio button should be selected in the group$/) do |how|
|
14
|
+
expect(@page.favorite_cheese_selected?).to eql how
|
15
|
+
end
|
16
|
+
|
17
|
+
Then(/^the "([^"]*)" radio button should not be selected$/) do |how|
|
18
|
+
expect(@page.favorite_cheese_selected?).not_to eql how
|
19
|
+
end
|
20
|
+
|
21
|
+
When(/^I ask for the elements of a radio button group$/) do
|
22
|
+
@elements = @page.favorite_cheese_elements
|
23
|
+
end
|
24
|
+
|
25
|
+
Then(/^I should have an array with elements for each radio button$/) do
|
26
|
+
expect(@elements.length).to eql 3
|
27
|
+
end
|
28
|
+
|
29
|
+
Then(/^the radio button element values should be "([^"]*)", "([^"]*)", "([^"]*)"$/) do |val1, val2, val3|
|
30
|
+
expect(@page.favorite_cheese_values).to eql [val1, val2, val3]
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,262 @@
|
|
1
|
+
class Container
|
2
|
+
include Druid
|
3
|
+
|
4
|
+
link(:section_link)
|
5
|
+
button(:section_button)
|
6
|
+
text_field(:section_text_field)
|
7
|
+
hidden_field(:section_hidden_field)
|
8
|
+
text_area(:section_text_area)
|
9
|
+
select_list(:section_select_list)
|
10
|
+
file_field(:section_file_field)
|
11
|
+
checkbox(:section_checkbox)
|
12
|
+
radio_button(:section_radio_button)
|
13
|
+
div(:section_div)
|
14
|
+
span(:section_span)
|
15
|
+
table(:section_table)
|
16
|
+
cell(:section_cell) { |page| page.section_table_element.cell_element(:index => 1) }
|
17
|
+
image(:section_image)
|
18
|
+
form(:section_form)
|
19
|
+
ordered_list(:section_ordered_list)
|
20
|
+
unordered_list(:section_unordered_list)
|
21
|
+
list_item(:section_list_item) { |page| page.section_ordered_list_element.list_item_element }
|
22
|
+
h1(:section_h1)
|
23
|
+
h2(:section_h2)
|
24
|
+
h3(:section_h3)
|
25
|
+
h4(:section_h4)
|
26
|
+
h5(:section_h5)
|
27
|
+
h6(:section_h6)
|
28
|
+
paragraph(:section_paragraph)
|
29
|
+
|
30
|
+
unordered_list(:outside_section, :id => 'outer')
|
31
|
+
end
|
32
|
+
|
33
|
+
class InputSection
|
34
|
+
include Druid
|
35
|
+
|
36
|
+
def value
|
37
|
+
root.value
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class SectionElementsPage
|
42
|
+
include Druid
|
43
|
+
|
44
|
+
page_section(:container, Container, :id => 'div_id')
|
45
|
+
page_sections(:page_inputs, InputSection, :tag_name => 'input')
|
46
|
+
|
47
|
+
end
|
48
|
+
Given(/^I am on the section elements page$/) do
|
49
|
+
@page = SectionElementsPage.new(@driver)
|
50
|
+
@page.navigate_to(UrlHelper.nested_elements)
|
51
|
+
end
|
52
|
+
|
53
|
+
When(/^I get the text from the section$/) do
|
54
|
+
@text = @page.container.text
|
55
|
+
end
|
56
|
+
|
57
|
+
Then(/^the text should include "([^"]*)"$/) do |expected_text|
|
58
|
+
expect(@text).to include expected_text
|
59
|
+
end
|
60
|
+
|
61
|
+
When(/^I access an element that is outside of the section$/) do
|
62
|
+
@element = @page.container.outside_section_element
|
63
|
+
end
|
64
|
+
|
65
|
+
Then(/^I should see that is doesn't exist in the section$/) do
|
66
|
+
expect(@element).not_to exist
|
67
|
+
end
|
68
|
+
|
69
|
+
When(/^I search for a link located in a section$/) do
|
70
|
+
@link = @page.container.section_link_element
|
71
|
+
end
|
72
|
+
|
73
|
+
Then(/^I should be able to click the section link$/) do
|
74
|
+
@link.click
|
75
|
+
end
|
76
|
+
|
77
|
+
When(/^I search for a button located in a section$/) do
|
78
|
+
@button = @page.container.section_button_element
|
79
|
+
end
|
80
|
+
|
81
|
+
Then(/^I should be able to click the section button$/) do
|
82
|
+
@button.click
|
83
|
+
end
|
84
|
+
|
85
|
+
When(/^I search for a text field located in a section$/) do
|
86
|
+
@text_field = @page.container.section_text_field_element
|
87
|
+
end
|
88
|
+
|
89
|
+
Then(/^I should be able to type "([^"]*)" in the section text field$/) do |value|
|
90
|
+
@text_field.value = value
|
91
|
+
end
|
92
|
+
|
93
|
+
When(/^I search for a hidden field located in a section$/) do
|
94
|
+
@hidden_field = @page.container.section_hidden_field_element
|
95
|
+
end
|
96
|
+
|
97
|
+
Then(/^I should be able to see that the section hidden field contains "([^"]*)"$/) do |value|
|
98
|
+
expect(@hidden_field.value).to eql value
|
99
|
+
end
|
100
|
+
|
101
|
+
When(/^I search for a text area located in a section$/) do
|
102
|
+
@text_area = @page.container.section_text_area_element
|
103
|
+
end
|
104
|
+
|
105
|
+
Then(/^I should be able to type "([^"]*)" in the section text area$/) do |value|
|
106
|
+
@text_area.value = value
|
107
|
+
end
|
108
|
+
|
109
|
+
When(/^I search for a select list located in a section$/) do
|
110
|
+
@select_list = @page.container.section_select_list_element
|
111
|
+
end
|
112
|
+
|
113
|
+
Then(/^I should be able to select "([^"]*)" in the section select list$/) do |value|
|
114
|
+
@select_list.select value
|
115
|
+
end
|
116
|
+
|
117
|
+
When(/^I search for a file field located in a section$/) do
|
118
|
+
@ff = @page.container.section_file_field_element
|
119
|
+
end
|
120
|
+
|
121
|
+
Then(/^I should be able to set the section file field$/) do
|
122
|
+
@ff.value = __FILE__
|
123
|
+
end
|
124
|
+
|
125
|
+
When(/^I search for a checkbox located in a section$/) do
|
126
|
+
@checkbox = @page.container.section_checkbox_element
|
127
|
+
end
|
128
|
+
|
129
|
+
Then(/^I should be able to check the section checkbox$/) do
|
130
|
+
@checkbox.check
|
131
|
+
end
|
132
|
+
|
133
|
+
When(/^I search for a radio button located in a section$/) do
|
134
|
+
@radio = @page.container.section_radio_button_element
|
135
|
+
end
|
136
|
+
|
137
|
+
Then(/^I should be able to select the section radio button$/) do
|
138
|
+
@radio.select
|
139
|
+
end
|
140
|
+
|
141
|
+
When(/^I search for a div located in a section$/) do
|
142
|
+
@div = @page.container.section_div_element
|
143
|
+
end
|
144
|
+
|
145
|
+
Then(/^I should see the text "([^"]*)" in the section div$/) do |value|
|
146
|
+
expect(@div.text).to eql value
|
147
|
+
end
|
148
|
+
|
149
|
+
When(/^I search for a span located in a section$/) do
|
150
|
+
@span = @page.container.section_span_element
|
151
|
+
end
|
152
|
+
|
153
|
+
Then(/^I should see the text "([^"]*)" in the section span$/) do |value|
|
154
|
+
expect(@span.text).to eql value
|
155
|
+
end
|
156
|
+
|
157
|
+
When(/^I search for a table located in a section$/) do
|
158
|
+
@table = @page.container.section_table_element
|
159
|
+
end
|
160
|
+
|
161
|
+
Then(/^the data for row "([^"]*)" of the section table should be "([^"]*)" and "([^"]*)"$/) do |row, col1, col2|
|
162
|
+
table_row = @table[row.to_i - 1]
|
163
|
+
expect(table_row[0].text).to eql col1
|
164
|
+
expect(table_row[1].text).to eql col2
|
165
|
+
end
|
166
|
+
|
167
|
+
When(/^I search the second table cell located in a table in a section$/) do
|
168
|
+
@cell = @page.container.section_cell_element
|
169
|
+
end
|
170
|
+
|
171
|
+
Then(/^the section table cell should contain "([^"]*)"$/) do |value|
|
172
|
+
expect(@cell.text).to eql value
|
173
|
+
end
|
174
|
+
|
175
|
+
When(/^I search for an image located in a section$/) do
|
176
|
+
@image = @page.container.section_image_element
|
177
|
+
end
|
178
|
+
|
179
|
+
Then(/^the section image should be "([^"]*)" pixels wide$/) do |width|
|
180
|
+
expect(@image.width).to eql width.to_i
|
181
|
+
end
|
182
|
+
|
183
|
+
Then(/^the section image should be "([^"]*)" pixels tall$/) do |height|
|
184
|
+
expect(@image.height).to eql height.to_i
|
185
|
+
end
|
186
|
+
|
187
|
+
When(/^I search for a form located in a section$/) do
|
188
|
+
@form = @page.container.section_form_element
|
189
|
+
end
|
190
|
+
|
191
|
+
Then(/^I should be able to submit the section form$/) do
|
192
|
+
@form.submit
|
193
|
+
end
|
194
|
+
|
195
|
+
When(/^I search for an ordered list located in a section$/) do
|
196
|
+
@list = @page.container.section_ordered_list_element
|
197
|
+
end
|
198
|
+
|
199
|
+
Then(/^the first section list items text should be "([^"]*)"$/) do |value|
|
200
|
+
expect(@list[0].text).to eql value
|
201
|
+
end
|
202
|
+
|
203
|
+
When(/^I search for an unordered list located in a section$/) do
|
204
|
+
@list = @page.container.section_unordered_list_element
|
205
|
+
end
|
206
|
+
|
207
|
+
When(/^I search for a list item section in an ordered list in a section$/) do
|
208
|
+
@li = @page.container.section_list_item_element
|
209
|
+
end
|
210
|
+
|
211
|
+
Then(/^I should see the section list items text should be "([^"]*)"$/) do |value|
|
212
|
+
expect(@li.text).to eql value
|
213
|
+
end
|
214
|
+
|
215
|
+
When(/^I search for a h(\d+) located in a section$/) do |num|
|
216
|
+
@header = @page.container.send "section_h#{num}_element"
|
217
|
+
end
|
218
|
+
|
219
|
+
Then(/^I should see the section h(\d+)s text should be "([^"]*)"$/) do |num, value|
|
220
|
+
expect(@header.text).to eql value
|
221
|
+
end
|
222
|
+
|
223
|
+
When(/^I search for a paragraph located in a section$/) do
|
224
|
+
@paragraph = @page.container.section_paragraph_element
|
225
|
+
end
|
226
|
+
|
227
|
+
Then(/^I should see the section paragraphs text should be "([^"]*)"$/) do |value|
|
228
|
+
expect(@paragraph.text).to eql value
|
229
|
+
end
|
230
|
+
|
231
|
+
When(/^I select multiple sections$/) do
|
232
|
+
@sections = @page.page_inputs
|
233
|
+
end
|
234
|
+
|
235
|
+
Then(/^I should have a section collection containing the sections$/) do
|
236
|
+
expect(@sections).to be_instance_of Druid::SectionCollection
|
237
|
+
end
|
238
|
+
|
239
|
+
Then(/^I can access any index of that collection of sections$/) do
|
240
|
+
expect(@sections[0]).to be_a(Druid)
|
241
|
+
expect(@sections[-1]).to be_a(Druid)
|
242
|
+
end
|
243
|
+
|
244
|
+
When(/^I search by a specific value of the section$/) do
|
245
|
+
@element = @sections.find_by(:value => 'LeanDog')
|
246
|
+
end
|
247
|
+
|
248
|
+
Then(/^I will find the first section with that value$/) do
|
249
|
+
expect(@element).to be_a(Druid)
|
250
|
+
expect(@element.value). to eq 'LeanDog'
|
251
|
+
end
|
252
|
+
|
253
|
+
When(/^I filter by a specific value of the sections$/) do
|
254
|
+
@elements = @sections.select_by(:value => /\w+/)
|
255
|
+
end
|
256
|
+
|
257
|
+
Then(/^I will find all sections with that value$/) do
|
258
|
+
expect(@elements).to be_a Druid::SectionCollection
|
259
|
+
@elements.map(&:value).each do |element|
|
260
|
+
expect(element).to match(/\w+/)
|
261
|
+
end
|
262
|
+
end
|
@@ -79,3 +79,12 @@ end
|
|
79
79
|
Then(/^I should see the text includes "([^"]*)" when I retrieve it by "([^"]*)"$/) do |text, how|
|
80
80
|
expect(@page.send("table_#{how}")).to include text
|
81
81
|
end
|
82
|
+
|
83
|
+
Then(/^the data for the second row should be "([^"]*)" and "([^"]*)"$/) do |col1, col2|
|
84
|
+
expect(@element[1][0].text).to eql col1
|
85
|
+
expect(@element[1][1].text).to eql col2
|
86
|
+
end
|
87
|
+
|
88
|
+
Then(/^the table should be like the expected one$/) do |expected_table|
|
89
|
+
expect(expected_table.diff!@element.hashes).to be_nil
|
90
|
+
end
|
data/features/support/env.rb
CHANGED
data/features/support/page.rb
CHANGED
@@ -72,6 +72,8 @@ class Page
|
|
72
72
|
radio_button(:milk_class_index, :class => "milk_class", :index => 0)
|
73
73
|
radio_button(:milk_name_index, :name => "milk_name", :index => 0)
|
74
74
|
|
75
|
+
radio_button_group(:favorite_cheese, name: 'fav_cheese')
|
76
|
+
|
75
77
|
button(:button_id, :id => 'button_id')
|
76
78
|
button(:button_name, :name => 'button_name')
|
77
79
|
button(:button_class, :class => 'button_class')
|
@@ -81,7 +83,7 @@ class Page
|
|
81
83
|
button(:button_value, :value => 'Click Me')
|
82
84
|
button(:button_class_index, :class => "button_class", :index => 0)
|
83
85
|
button(:button_name_index, :name => "button_name", :index => 0)
|
84
|
-
button(:button_css, :css => "
|
86
|
+
button(:button_css, :css => ".button_class")
|
85
87
|
|
86
88
|
button(:button_image_id, :id => 'button_image_id')
|
87
89
|
button(:button_image_src, :src => 'images/submit.gif')
|
@@ -145,8 +147,8 @@ class Page
|
|
145
147
|
label(:label_name, :name => "label_name")
|
146
148
|
label(:label_class, :class => "label_class")
|
147
149
|
label(:label_text, :text => "page-object is the best!")
|
148
|
-
label(:label_index, :index =>
|
149
|
-
label(:label_xpath, :xpath => "//label[
|
150
|
+
label(:label_index, :index => 6)
|
151
|
+
label(:label_xpath, :xpath => "//label[7]")
|
150
152
|
label(:label_css, :css => '.label_class')
|
151
153
|
label(:label_class_index, :class => "label_class", :index => 0)
|
152
154
|
label(:label_name_index, :name => "label_name", :index => 0)
|
@@ -176,7 +178,7 @@ class Page
|
|
176
178
|
hidden_field(:hidden_field_class, :class => "hidden_field_class")
|
177
179
|
hidden_field(:hidden_field_name, :name => "hidden_field_name")
|
178
180
|
hidden_field(:hidden_field_xpath, :xpath => "//input[@type='hidden']")
|
179
|
-
hidden_field(:hidden_field_css, :css => "
|
181
|
+
hidden_field(:hidden_field_css, :css => ".hidden_field_class")
|
180
182
|
hidden_field(:hidden_field_tag_name, :tag_name => "input[type='hidden']")
|
181
183
|
hidden_field(:hidden_field_index, :index => 0)
|
182
184
|
hidden_field(:hidden_field_text, :text => "")
|
@@ -207,7 +209,7 @@ class Page
|
|
207
209
|
text_area(:text_area_class, :class => "text_area_class")
|
208
210
|
text_area(:text_area_name, :name => "text_area_name")
|
209
211
|
text_area(:text_area_xpath, :xpath => "//textarea")
|
210
|
-
text_area(:text_area_css, :css => "
|
212
|
+
text_area(:text_area_css, :css => ".text_area_class")
|
211
213
|
text_area(:text_area_tag_name, :tag_name => "textarea")
|
212
214
|
text_area(:text_area_index, :index => 0)
|
213
215
|
text_area(:text_area_text, :text => "")
|
@@ -354,4 +356,13 @@ class Page
|
|
354
356
|
|
355
357
|
figure(:figure_id, :id => 'figure_id')
|
356
358
|
svg(:svg_id, :id => 'the_svg')
|
359
|
+
|
360
|
+
b(:b_id, :id => 'b_id')
|
361
|
+
b(:b_class, :class => 'b_class')
|
362
|
+
b(:b_css, :css => '.b_class')
|
363
|
+
b(:b_name, :name => 'b_name')
|
364
|
+
b(:b_index, :index => 0)
|
365
|
+
b(:b_xpath, :xpath => '//b')
|
366
|
+
b(:b_class_index, :class => 'b_class', :index => 0)
|
367
|
+
b(:b_name_index, :name => 'b_name', :index => 0)
|
357
368
|
end
|
data/features/table.feature
CHANGED
@@ -28,15 +28,15 @@ Feature: Table
|
|
28
28
|
|
29
29
|
Scenario: Retrieve data from a table using a column header
|
30
30
|
When I retrieve a table element
|
31
|
-
Then the data for column "
|
31
|
+
Then the data for column "Header" and row "3" should be "Data4"
|
32
32
|
|
33
33
|
Scenario: Retrieve data from a table using a partial column header
|
34
34
|
When I retrieve a table element
|
35
|
-
Then the data for column "
|
35
|
+
Then the data for column "eader" and row "3" should be "Data4"
|
36
36
|
|
37
37
|
Scenario: Retrieve data from a table using both headers
|
38
38
|
When I retrieve a table element
|
39
|
-
Then the data for row "Data3" and column "
|
39
|
+
Then the data for row "Data3" and column "eader" should be "Data4"
|
40
40
|
|
41
41
|
Scenario: Retrieve data from a table with an incorrect row header
|
42
42
|
When I retrieve a table element
|
@@ -53,7 +53,7 @@ Feature: Table
|
|
53
53
|
@name
|
54
54
|
Scenario Outline: Locating table cells on the Page
|
55
55
|
When I retrieve a table element by "<locate_by>"
|
56
|
-
Then the data for row "
|
56
|
+
Then the data for row "2" should be "Data1" and "Data2"
|
57
57
|
|
58
58
|
Examples:
|
59
59
|
| locate_by |
|
@@ -66,19 +66,16 @@ Feature: Table
|
|
66
66
|
|
67
67
|
Scenario: Retrieve the data from a table
|
68
68
|
When I retrieve a table element
|
69
|
-
Then the data for row "
|
70
|
-
And the data for row "
|
71
|
-
And the table should have "
|
72
|
-
And
|
73
|
-
And row "
|
74
|
-
And each column should contain "Data"
|
75
|
-
And the data for the first row should be "Data1" and "Data2"
|
76
|
-
And the data for the last row should be "Data3" and "Data4"
|
69
|
+
Then the data for row "2" should be "Data1" and "Data2"
|
70
|
+
And the data for row "3" should be "Data3" and "Data4"
|
71
|
+
And the table should have "3" rows
|
72
|
+
And row "2" should have "2" columns
|
73
|
+
And the data for the second row should be "Data1" and "Data2"
|
77
74
|
|
78
75
|
@multi
|
79
76
|
Scenario Outline: Locating table using multiple parameters
|
80
77
|
When I retrieve a table element bys "<param1>" and "<param2>"
|
81
|
-
Then the data for row "
|
78
|
+
Then the data for row "2" should be "Data1" and "Data2"
|
82
79
|
|
83
80
|
Examples:
|
84
81
|
| param1 | param2 |
|
@@ -89,7 +86,7 @@ Feature: Table
|
|
89
86
|
Scenario: Finding a table dynamically
|
90
87
|
When I retrieve a table element while the script is executing
|
91
88
|
Then I should see that the table exists
|
92
|
-
And the data for row "
|
89
|
+
And the data for row "2" should be "Data1" and "Data2"
|
93
90
|
|
94
91
|
Scenario: Retrieve data from a table with a thead using a column header
|
95
92
|
When I retrieve a table with thead element
|
@@ -102,3 +99,10 @@ Feature: Table
|
|
102
99
|
Scenario: Getting the text from a table
|
103
100
|
Then I should see the text includes "Data1" when I retrieve it by "id"
|
104
101
|
And I should see the text includes "Data2" when I retrieve it by "id"
|
102
|
+
|
103
|
+
Scenario: Matching the expected table with the table on the Page
|
104
|
+
When I retrieve a table element
|
105
|
+
Then the table should be like the expected one
|
106
|
+
| Table | Header |
|
107
|
+
| Data1 | Data2 |
|
108
|
+
| Data3 | Data4 |
|