druid-s 1.0.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 +7 -0
- data/.gitignore +7 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/.travis.yml +27 -0
- data/ChangeLog +541 -0
- data/Gemfile +8 -0
- data/README.md +78 -0
- data/Rakefile +33 -0
- data/cucumber.yml +6 -0
- data/druid.gemspec +30 -0
- data/features/area.feature +33 -0
- data/features/async.feature +16 -0
- data/features/audio.feature +61 -0
- data/features/bold.feature +20 -0
- data/features/button.feature +81 -0
- data/features/canvas.feature +34 -0
- data/features/checkbox.feature +48 -0
- data/features/div.feature +45 -0
- data/features/element.feature +281 -0
- data/features/file_field.feature +38 -0
- data/features/form.feature +37 -0
- data/features/frames.feature +76 -0
- data/features/generic_elements.feature +29 -0
- data/features/heading.feature +160 -0
- data/features/hidden_field.feature +39 -0
- data/features/html/async.html +31 -0
- data/features/html/frame_1.html +18 -0
- data/features/html/frame_2.html +16 -0
- data/features/html/frame_3.html +14 -0
- data/features/html/frames.html +12 -0
- data/features/html/hover.html +11 -0
- data/features/html/iframes.html +12 -0
- data/features/html/images/circle.png +0 -0
- data/features/html/images/img_pulpit.jpg +0 -0
- data/features/html/modal.html +17 -0
- data/features/html/modal_1.html +38 -0
- data/features/html/modal_2.html +27 -0
- data/features/html/multi_elements.html +145 -0
- data/features/html/nested_elements.html +75 -0
- data/features/html/nested_frame_1.html +1 -0
- data/features/html/nested_frame_2.html +11 -0
- data/features/html/nested_frame_3.html +14 -0
- data/features/html/nested_frames.html +10 -0
- data/features/html/planets.gif +0 -0
- data/features/html/static_elements.html +203 -0
- data/features/html/success.html +8 -0
- data/features/html/sun.gif +0 -0
- data/features/html/sun.html +7 -0
- data/features/image.feature +47 -0
- data/features/italic.feature +20 -0
- data/features/javascript.feature +28 -0
- data/features/label.feature +43 -0
- data/features/link.feature +56 -0
- data/features/list_item.feature +37 -0
- data/features/modal_dialog.feature +9 -0
- data/features/multi_elements.feature +498 -0
- data/features/nested_elements.feature +121 -0
- data/features/ordered_list.feature +46 -0
- data/features/page_level_actions.feature +116 -0
- data/features/paragraph.feature +33 -0
- data/features/populate_page_with.feature +25 -0
- data/features/radio_button.feature +51 -0
- data/features/radio_button_group.feature +28 -0
- data/features/sample-app/public/04-Death_Becomes_Fur.mp4 +0 -0
- data/features/sample-app/public/04-Death_Becomes_Fur.oga +0 -0
- data/features/sample-app/public/audio_video.html +19 -0
- data/features/sample-app/public/jquery-1.3.2.js +4376 -0
- data/features/sample-app/public/jquery.html +28 -0
- data/features/sample-app/public/movie.mp4 +0 -0
- data/features/sample-app/public/movie.ogg +0 -0
- data/features/sample-app/public/prototype-1.6.0.3.js +4320 -0
- data/features/sample-app/public/prototype.html +32 -0
- data/features/sample-app/sample_app.rb +35 -0
- data/features/section.feature +132 -0
- data/features/select_list.feature +84 -0
- data/features/span.feature +43 -0
- data/features/step_definations/area_steps.rb +23 -0
- data/features/step_definations/async_steps.rb +80 -0
- data/features/step_definations/audio_steps.rb +47 -0
- data/features/step_definations/bold_steps.rb +11 -0
- data/features/step_definations/button_steps.rb +52 -0
- data/features/step_definations/canvas_steps.rb +19 -0
- data/features/step_definations/checkbox_steps.rb +39 -0
- data/features/step_definations/div_steps.rb +28 -0
- data/features/step_definations/element_steps.rb +217 -0
- data/features/step_definations/file_field_steps.rb +31 -0
- data/features/step_definations/form_steps.rb +23 -0
- data/features/step_definations/frame_steps.rb +189 -0
- data/features/step_definations/generic_element_steps.rb +31 -0
- data/features/step_definations/heading_steps.rb +39 -0
- data/features/step_definations/hidden_field_steps.rb +27 -0
- data/features/step_definations/image_steps.rb +35 -0
- data/features/step_definations/italic_steps.rb +11 -0
- data/features/step_definations/javasript_steps.rb +52 -0
- data/features/step_definations/label_steps.rb +19 -0
- data/features/step_definations/link_steps.rb +42 -0
- data/features/step_definations/list_item_steps.rb +24 -0
- data/features/step_definations/modal_dialog_steps.rb +38 -0
- data/features/step_definations/multi_elements_steps.rb +557 -0
- data/features/step_definations/nested_elements_steps.rb +219 -0
- data/features/step_definations/ordered_list_steps.rb +49 -0
- data/features/step_definations/page_level_actions_steps.rb +172 -0
- data/features/step_definations/page_traversal_steps.rb +4 -0
- data/features/step_definations/paragraph_steps.rb +19 -0
- data/features/step_definations/populate_page_with_steps.rb +3 -0
- data/features/step_definations/radio_button_group_steps.rb +32 -0
- data/features/step_definations/radio_button_steps.rb +31 -0
- data/features/step_definations/section_steps.rb +271 -0
- data/features/step_definations/select_list_steps.rb +91 -0
- data/features/step_definations/span_steps.rb +23 -0
- data/features/step_definations/table_cell_steps.rb +27 -0
- data/features/step_definations/table_row_steps.rb +23 -0
- data/features/step_definations/table_steps.rb +109 -0
- data/features/step_definations/text_area_steps.rb +39 -0
- data/features/step_definations/text_field_steps.rb +39 -0
- data/features/step_definations/unordered_list_steps.rb +27 -0
- data/features/step_definations/video_steps.rb +27 -0
- data/features/support/ajax_test_environment.rb +26 -0
- data/features/support/audio_video_page.rb +23 -0
- data/features/support/env.rb +5 -0
- data/features/support/hooks.rb +3 -0
- data/features/support/page.rb +372 -0
- data/features/support/persistent_browser.rb +58 -0
- data/features/support/targets/firefox14_osx.rb +5 -0
- data/features/support/targets/firefox14_windows7.rb +5 -0
- data/features/support/url_helper.rb +50 -0
- data/features/table.feature +127 -0
- data/features/table_cell.feature +42 -0
- data/features/table_row.feature +30 -0
- data/features/text_area.feature +44 -0
- data/features/text_field.feature +53 -0
- data/features/unordered_list.feature +46 -0
- data/features/video.feature +66 -0
- data/lib/druid/accessors.rb +1082 -0
- data/lib/druid/assist.rb +653 -0
- data/lib/druid/element_locators.rb +21 -0
- data/lib/druid/elements/area.rb +9 -0
- data/lib/druid/elements/audio.rb +9 -0
- data/lib/druid/elements/bold.rb +8 -0
- data/lib/druid/elements/button.rb +12 -0
- data/lib/druid/elements/canvas.rb +9 -0
- data/lib/druid/elements/check_box.rb +9 -0
- data/lib/druid/elements/div.rb +9 -0
- data/lib/druid/elements/element.rb +187 -0
- data/lib/druid/elements/file_field.rb +9 -0
- data/lib/druid/elements/form.rb +9 -0
- data/lib/druid/elements/heading.rb +14 -0
- data/lib/druid/elements/hidden_field.rb +9 -0
- data/lib/druid/elements/image.rb +9 -0
- data/lib/druid/elements/italic.rb +9 -0
- data/lib/druid/elements/label.rb +8 -0
- data/lib/druid/elements/link.rb +9 -0
- data/lib/druid/elements/list_item.rb +9 -0
- data/lib/druid/elements/media.rb +11 -0
- data/lib/druid/elements/option.rb +9 -0
- data/lib/druid/elements/ordered_list.rb +29 -0
- data/lib/druid/elements/paragraph.rb +9 -0
- data/lib/druid/elements/radio_button.rb +9 -0
- data/lib/druid/elements/select_list.rb +30 -0
- data/lib/druid/elements/span.rb +9 -0
- data/lib/druid/elements/table.rb +92 -0
- data/lib/druid/elements/table_cell.rb +11 -0
- data/lib/druid/elements/table_row.rb +50 -0
- data/lib/druid/elements/text_area.rb +10 -0
- data/lib/druid/elements/text_field.rb +11 -0
- data/lib/druid/elements/unordered_list.rb +32 -0
- data/lib/druid/elements/video.rb +8 -0
- data/lib/druid/elements.rb +55 -0
- data/lib/druid/javascript/angularjs.rb +12 -0
- data/lib/druid/javascript/jquery.rb +12 -0
- data/lib/druid/javascript/prototype.rb +12 -0
- data/lib/druid/javascript/yui.rb +19 -0
- data/lib/druid/javascript_framework_facade.rb +76 -0
- data/lib/druid/locator_generator.rb +181 -0
- data/lib/druid/nested_elements.rb +56 -0
- data/lib/druid/page_factory.rb +115 -0
- data/lib/druid/page_populator.rb +104 -0
- data/lib/druid/section_collection.rb +17 -0
- data/lib/druid/version.rb +3 -0
- data/lib/druid.rb +452 -0
- data/spec/druid/accessors_spec.rb +1209 -0
- data/spec/druid/druid_spec.rb +295 -0
- data/spec/druid/element_locators_spec.rb +750 -0
- data/spec/druid/elements/bold_spec.rb +12 -0
- data/spec/druid/elements/button_spec.rb +23 -0
- data/spec/druid/elements/check_box_spec.rb +14 -0
- data/spec/druid/elements/div_spec.rb +10 -0
- data/spec/druid/elements/element_spec.rb +250 -0
- data/spec/druid/elements/file_field_spec.rb +13 -0
- data/spec/druid/elements/form_spec.rb +18 -0
- data/spec/druid/elements/heading_spec.rb +30 -0
- data/spec/druid/elements/hidden_field_spec.rb +10 -0
- data/spec/druid/elements/image_spec.rb +23 -0
- data/spec/druid/elements/itatic_spec.rb +11 -0
- data/spec/druid/elements/label_spec.rb +10 -0
- data/spec/druid/elements/link_spec.rb +10 -0
- data/spec/druid/elements/list_item_spec.rb +10 -0
- data/spec/druid/elements/media_spec.rb +12 -0
- data/spec/druid/elements/option_spec.rb +21 -0
- data/spec/druid/elements/ordered_list_spec.rb +38 -0
- data/spec/druid/elements/page_factory_spec.rb +40 -0
- data/spec/druid/elements/paragraph_spec.rb +12 -0
- data/spec/druid/elements/radio_button_spec.rb +14 -0
- data/spec/druid/elements/select_list_spec.rb +51 -0
- data/spec/druid/elements/span_spec.rb +10 -0
- data/spec/druid/elements/table_cell_spec.rb +14 -0
- data/spec/druid/elements/table_row_spec.rb +34 -0
- data/spec/druid/elements/table_spec.rb +47 -0
- data/spec/druid/elements/text_area_spec.rb +13 -0
- data/spec/druid/elements/text_field_spec.rb +22 -0
- data/spec/druid/elements/unordered_list_spec.rb +39 -0
- data/spec/druid/javascript_framework_facade_spec.rb +59 -0
- data/spec/druid/nested_element_spec.rb +128 -0
- data/spec/druid/page_factory_spec.rb +235 -0
- data/spec/druid/page_populator_spec.rb +173 -0
- data/spec/druid/page_section_spec.rb +70 -0
- data/spec/spec_helper.rb +9 -0
- metadata +517 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
When(/^I select the link labeled "(.*?)"$/) do |text|
|
|
2
|
+
@page.google_search_id_element
|
|
3
|
+
@page.google_search_id
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
When(/^I locate the link by "(.*?)"$/) do |how|
|
|
7
|
+
@how = how
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
Then(/^I should be able to select the link$/) do
|
|
11
|
+
@page.send "google_search_#{@how}_element".to_sym
|
|
12
|
+
@page.send "google_search_#{@how}".to_sym
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
When(/^I retrieve a link element$/) do
|
|
16
|
+
@element = @page.google_search_id_element
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
Then(/^I should know it exists$/) do
|
|
20
|
+
expect(@element.exist?).to be true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
Then(/^I should know it is visible$/) do
|
|
24
|
+
expect(@element.present?).to be true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
When(/^I select a link labeled "(.*?)" and index "(.*?)"$/) do |label, index|
|
|
28
|
+
@page.send "#{label.downcase}#{index}".to_sym
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
When(/^I select a link while the script is executing$/) do
|
|
32
|
+
link = @page.link_element(:id => 'link_id')
|
|
33
|
+
link.click
|
|
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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
When(/^I get the text from the list item$/) do
|
|
2
|
+
@text = @page.li_id
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When(/^I locate the list item by "(.*?)"$/) do |how|
|
|
6
|
+
@element = @page.send "li_#{how}_element".to_sym
|
|
7
|
+
@text = @element.text
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
When(/^I search for the list item by "(.*?)" and "(.*?)"$/) do |param1, param2|
|
|
11
|
+
@text = @page.send "li_#{param1}_#{param2}"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
When(/^I retrieve a list item element$/) do
|
|
15
|
+
@element = @page.li_id_element
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When(/^I search for the list item while the script is executing$/) do
|
|
19
|
+
@text = @page.list_item_element(:id => 'li_id').text
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Then(/^I should see that the list item exists$/) do
|
|
23
|
+
expect(@page.li_id?).to be true
|
|
24
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
class ModalPage
|
|
2
|
+
include Druid
|
|
3
|
+
|
|
4
|
+
button(:launch_modal, :id => 'launch_modal_button')
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class ModalDialog
|
|
8
|
+
include Druid
|
|
9
|
+
|
|
10
|
+
button(:close_window, :id => 'close_window')
|
|
11
|
+
button(:close_window_with_delay, :id => 'delayed_close')
|
|
12
|
+
button(:launch_another_modal, :id => 'launch_modal_button')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class AnotherModalDialog
|
|
16
|
+
include Druid
|
|
17
|
+
|
|
18
|
+
button(:close_window, :id => 'close_window')
|
|
19
|
+
button(:close_window_with_delay, :id => 'delayed_close')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Given(/^I am on the modal page$/) do
|
|
23
|
+
@page = ModalPage.new(@driver)
|
|
24
|
+
@page.navigate_to(UrlHelper.modal)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
When(/^I open a modal dialog$/) do
|
|
28
|
+
@page.modal_dialog do
|
|
29
|
+
@page.launch_modal
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Then(/^I should be able to close the modal$/) do
|
|
34
|
+
@dialog = ModalDialog.new(@driver)
|
|
35
|
+
@dialog.attach_to_window(:title => 'Modal 1') do
|
|
36
|
+
@dialog.close_window
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
class MultiElementsPage
|
|
2
|
+
include Druid
|
|
3
|
+
|
|
4
|
+
divs(:the_divs, :class => 'div')
|
|
5
|
+
buttons(:the_buttons, :class => 'button')
|
|
6
|
+
text_fields(:the_text_fields, :class => 'textfield')
|
|
7
|
+
hidden_fields(:the_hidden_fields, :class => 'hiddenfield')
|
|
8
|
+
text_areas(:the_text_areas, :class => 'textarea')
|
|
9
|
+
select_lists(:the_select_lists, :class => 'selectlist')
|
|
10
|
+
links(:the_links, :class => 'link')
|
|
11
|
+
checkboxes(:the_checkboxes, :class => 'checkbox')
|
|
12
|
+
radio_buttons(:the_radio_buttons, :class => 'radio')
|
|
13
|
+
spans(:the_spans, :class => 'span')
|
|
14
|
+
tables(:the_tables, :class => 'table')
|
|
15
|
+
cells(:the_cells, :class => 'td')
|
|
16
|
+
images(:the_images, :class => 'image')
|
|
17
|
+
forms(:the_forms, :class => 'form')
|
|
18
|
+
list_items(:the_list_items, :class => 'li')
|
|
19
|
+
unordered_lists(:the_unordered_lists, :class => 'ul')
|
|
20
|
+
ordered_lists(:the_ordered_lists, :class => 'ol')
|
|
21
|
+
h1s(:the_h1s, :class => 'h1')
|
|
22
|
+
h2s(:the_h2s, :class => 'h2')
|
|
23
|
+
h3s(:the_h3s, :class => 'h3')
|
|
24
|
+
h4s(:the_h4s, :class => 'h4')
|
|
25
|
+
h5s(:the_h5s, :class => 'h5')
|
|
26
|
+
h6s(:the_h6s, :class => 'h6')
|
|
27
|
+
paragraphs(:the_paragraphs, :class => 'p')
|
|
28
|
+
labels(:the_labels, :class => 'label')
|
|
29
|
+
file_fields(:the_file_fields, :class => 'file_field_class')
|
|
30
|
+
elements(:generic_label, :label, :css => '.label')
|
|
31
|
+
divs(:block_divs) do |page|
|
|
32
|
+
page.div_elements(:class => 'div')
|
|
33
|
+
end
|
|
34
|
+
b(:bs)
|
|
35
|
+
i(:is)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Given(/^I am on the multi elements page$/) do
|
|
39
|
+
@page = MultiElementsPage.new(@driver)
|
|
40
|
+
@page.navigate_to(UrlHelper.multi)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
When(/^I select the buttons with class "([^"]*)"$/) do |class_name|
|
|
44
|
+
@elements = @page.button_elements(:class => class_name)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
Then(/^I should have (\d+) buttons$/) do |num_buttons|
|
|
48
|
+
expect(@elements.size).to eql num_buttons.to_i
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
Then(/^the value of button (\d+) should be "([^"]*)"$/) do |button_num, value|
|
|
52
|
+
expect(@elements[button_num.to_i - 1].value).to eql value
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
When(/^I select the text fields with class "([^"]*)"$/) do |class_name|
|
|
56
|
+
@elements = @page.text_field_elements(:class => class_name)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
Then(/^I should have (\d+) text fields$/) do |num_text_fields|
|
|
60
|
+
expect(@elements.size).to eql num_text_fields.to_i
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
Then(/^the value of text field (\d+) should be "([^"]*)"$/) do |text_field_num, value|
|
|
64
|
+
expect(@elements[text_field_num.to_i - 1].value).to eql value
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
When(/^I select the hidden fields with class "([^"]*)"$/) do |class_name|
|
|
68
|
+
@elements = @page.hidden_field_elements(:class => class_name)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
Then(/^I should have (\d+) hidden fields$/) do |num_hidden_fields|
|
|
72
|
+
expect(@elements.size).to eql num_hidden_fields.to_i
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
Then(/^the value of hidden field (\d+) should be "([^"]*)"$/) do |hidden_field_num, value|
|
|
76
|
+
expect(@elements[hidden_field_num.to_i - 1].value).to eql value
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
When(/^I select the text areas with class "([^"]*)"$/) do |class_name|
|
|
80
|
+
@elements = @page.text_area_elements(:class => class_name)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
Then(/^I should have (\d+) text areas$/) do |num_text_areas|
|
|
84
|
+
expect(@elements.size).to eql num_text_areas.to_i
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
Then(/^the value of text area (\d+) should be "([^"]*)"$/) do |text_area_num, value|
|
|
88
|
+
expect(@elements[text_area_num.to_i - 1].value).to eql value
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
When(/^I select the select lists with class "([^"]*)"$/) do |class_name|
|
|
92
|
+
@elements = @page.select_list_elements(:class => class_name)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
Then(/^I should have (\d+) select lists$/) do |num_select_lists|
|
|
96
|
+
expect(@elements.size).to eql num_select_lists.to_i
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
Then(/^the value of select list (\d+) should be "([^"]*)"$/) do |select_list_num, value|
|
|
100
|
+
expect(@elements[select_list_num.to_i - 1].value).to eql value
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
When(/^I select the link with class "([^"]*)"$/) do |class_name|
|
|
104
|
+
@elements = @page.link_elements(:class => class_name)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
Then(/^I should have (\d+) links$/) do |num_links|
|
|
108
|
+
expect(@elements.size).to eql num_links.to_i
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
Then(/^the text of link (\d+) should be "([^"]*)"$/) do |link_num, text|
|
|
112
|
+
expect(@elements[link_num.to_i - 1].text).to eql text
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
When(/^I select the check boxes with class "([^"]*)"$/) do |class_name|
|
|
116
|
+
@elements = @page.checkbox_elements(:class => class_name)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
Then(/^I should have (\d+) checkboxes$/) do |num_checkboxes|
|
|
120
|
+
expect(@elements.size).to eql num_checkboxes.to_i
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
Then(/^the value of checkbox (\d+) should be "([^"]*)"$/) do |checkbox_num, value|
|
|
124
|
+
expect(@elements[checkbox_num.to_i - 1].value).to eql value
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
When(/^I select the radio buttons with class "([^"]*)"$/) do |class_name|
|
|
128
|
+
@elements = @page.radio_button_elements(:class => class_name)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
Then(/^I should have (\d+) radio buttons$/) do |num_radio_buttons|
|
|
132
|
+
expect(@elements.size).to eql num_radio_buttons.to_i
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
Then(/^the value of radio button (\d+) should be "([^"]*)"$/) do |radio_button_num, value|
|
|
136
|
+
expect(@elements[radio_button_num.to_i - 1].value).to eql value
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
When(/^I select the divs with class "([^"]*)"$/) do |class_name|
|
|
140
|
+
@elements = @page.div_elements(:class => class_name)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
Then(/^I should have (\d+) divs$/) do |num_divs|
|
|
144
|
+
expect(@elements.size).to eql num_divs.to_i
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
Then(/^the text of div (\d+) should be "([^"]*)"$/) do |div_num, text|
|
|
148
|
+
expect(@elements[div_num.to_i - 1].text).to eql text
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
When(/^I select the spans with class "([^"]*)"$/) do |class_name|
|
|
152
|
+
@elements = @page.span_elements(:class => class_name)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
Then(/^I should have (\d+) spans$/) do |num_spans|
|
|
156
|
+
expect(@elements.size).to eql num_spans.to_i
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
Then(/^the text of span (\d+) should be "([^"]*)"$/) do |span_num, text|
|
|
160
|
+
expect(@elements[span_num.to_i - 1].text).to eql text
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
When(/^I select the tables with class "([^"]*)"$/) do |class_name|
|
|
164
|
+
@elements = @page.table_elements(:class => class_name)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
Then(/^I should have (\d+) tables$/) do |num_tables|
|
|
168
|
+
expect(@elements.size).to eql num_tables.to_i
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
Then(/^the first row first column for table (\d+) should have "([^"]*)"$/) do |table_num, text|
|
|
172
|
+
expect(@elements[table_num.to_i - 1][0][0].text).to eql text
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
When(/^I select the cells with class "([^"]*)"$/) do |class_name|
|
|
176
|
+
@elements = @page.cell_elements(:class => class_name)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
Then(/^I should have (\d+) cells$/) do |num_cells|
|
|
180
|
+
expect(@elements.size).to eql num_cells.to_i
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
Then(/^the text for cell (\d+) should be "([^"]*)"$/) do |cell_num, text|
|
|
184
|
+
expect(@elements[cell_num.to_i - 1].text).to eql text
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
When(/^I select the images with class "([^"]*)"$/) do |class_name|
|
|
188
|
+
@elements = @page.image_elements(:class => class_name)
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
Then(/^I should have (\d+) images$/) do |num_images|
|
|
192
|
+
expect(@elements.size).to eql num_images.to_i
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
Then(/^the alt for image (\d+) should be "([^"]*)"$/) do |image_num , alt|
|
|
196
|
+
expect(@elements[image_num.to_i - 1].attribute(:alt)).to eql alt
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
When(/^I select the forms with class "([^"]*)"$/) do |class_name|
|
|
200
|
+
@elements = @page.form_elements(:class => class_name)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
Then(/^I should have (\d+) forms$/) do |num_forms|
|
|
204
|
+
expect(@elements.size).to eql num_forms.to_i
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
Then(/^the action for form (\d+) should be "([^"]*)"$/) do |form_num, action|
|
|
208
|
+
expect(@elements[form_num.to_i - 1].attribute(:action)).to match action
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
When(/^I select the list items with class "([^"]*)"$/) do |class_name|
|
|
212
|
+
@elements = @page.list_item_elements(:class => class_name)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
Then(/^I should have (\d+) list items$/) do |num_list_items|
|
|
216
|
+
expect(@elements.size).to eql num_list_items.to_i
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
Then(/^the text for list item (\d+) should be "([^"]*)"$/) do |list_item_num, text|
|
|
220
|
+
expect(@elements[list_item_num.to_i - 1].text).to eql text
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
When(/^I select the unordered lists with class "([^"]*)"$/) do |class_name|
|
|
224
|
+
@elements = @page.unordered_list_elements(:class => class_name)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
Then(/^I should have (\d+) unordered lists$/) do |num_unordered_list|
|
|
228
|
+
expect(@elements.size).to eql num_unordered_list.to_i
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
Then(/^the text for the first item in unordered list (\d+) should be "([^"]*)"$/) do |ul_num, text|
|
|
232
|
+
expect(@elements[ul_num.to_i - 1][0].text).to eql text
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
When(/^I select the ordered lists with class "([^"]*)"$/) do |class_name|
|
|
236
|
+
@elements = @page.ordered_list_elements(:class => class_name)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
Then(/^I should have (\d+) ordered lists$/) do |num_ol|
|
|
240
|
+
expect(@elements.size).to eql num_ol.to_i
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
Then(/^the text for the first item in ordered list (\d+) should be "([^"]*)"$/) do |ol_num, text|
|
|
244
|
+
expect(@elements[ol_num.to_i - 1][0].text).to eql text
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
When(/^I select the h1s with class "([^"]*)"$/) do |class_name|
|
|
248
|
+
@elements = @page.h1_elements(:class => class_name)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
Then(/^I should have (\d+) h1s$/) do |num_h1s|
|
|
252
|
+
expect(@elements.size).to eql num_h1s.to_i
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
Then(/^the text for h1 (\d+) should be "([^"]*)"$/) do |h1_num, text|
|
|
256
|
+
expect(@elements[h1_num.to_i - 1].text).to eql text
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
When(/^I select the h2s with class "([^"]*)"$/) do |class_name|
|
|
260
|
+
@elements = @page.h2_elements(:class => class_name)
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
Then(/^I should have (\d+) h2s$/) do |num_h2s|
|
|
264
|
+
expect(@elements.size).to eql num_h2s.to_i
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
Then(/^the text for h2 (\d+) should be "([^"]*)"$/) do |h2_num, text|
|
|
268
|
+
expect(@elements[h2_num.to_i - 1].text).to eql text
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
When(/^I select the h3s with class "([^"]*)"$/) do |class_name|
|
|
272
|
+
@elements = @page.h3_elements(:class => class_name)
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
Then(/^I should have (\d+) h3s$/) do |num_h3s|
|
|
276
|
+
expect(@elements.size).to eql num_h3s.to_i
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
Then(/^the text for h3 (\d+) should be "([^"]*)"$/) do |h3_num, text|
|
|
280
|
+
expect(@elements[h3_num.to_i - 1].text).to eql text
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
When(/^I select the h4s with class "([^"]*)"$/) do |class_name|
|
|
284
|
+
@elements = @page.h4_elements(:class => class_name)
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
Then(/^I should have (\d+) h4s$/) do |num_h4s|
|
|
288
|
+
expect(@elements.size).to eql num_h4s.to_i
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
Then(/^the text for h4 (\d+) should be "([^"]*)"$/) do |h4_num, text|
|
|
292
|
+
expect(@elements[h4_num.to_i - 1].text).to eql text
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
When(/^I select the h5s with class "([^"]*)"$/) do |class_name|
|
|
296
|
+
@elements = @page.h5_elements(:class => class_name)
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
Then(/^I should have (\d+) h5s$/) do |num_h5s|
|
|
300
|
+
expect(@elements.size).to eql num_h5s.to_i
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
Then(/^the text for h5 (\d+) should be "([^"]*)"$/) do |h5_num, text|
|
|
304
|
+
expect(@elements[h5_num.to_i - 1].text).to eql text
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
When(/^I select the h6s with class "([^"]*)"$/) do |class_name|
|
|
308
|
+
@elements = @page.h6_elements(:class => class_name)
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
Then(/^I should have (\d+) h6s$/) do |num_h6s|
|
|
312
|
+
expect(@elements.size).to eql num_h6s.to_i
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
Then(/^the text for h6 (\d+) should be "([^"]*)"$/) do |h6_num, text|
|
|
316
|
+
expect(@elements[h6_num.to_i - 1].text).to eql text
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
When(/^I select the paragraphs with class "([^"]*)"$/) do |class_name|
|
|
320
|
+
@elements = @page.paragraph_elements(:class => class_name)
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
Then(/^I should have (\d+) paragraphs$/) do |num_paragraphs|
|
|
324
|
+
expect(@elements.size).to eql num_paragraphs.to_i
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
Then(/^the text for paragraph (\d+) should be "([^"]*)"$/) do |paragraph_num, text|
|
|
328
|
+
expect(@elements[paragraph_num.to_i - 1].text).to eql text
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
When(/^I select the labels with class "([^"]*)"$/) do |class_name|
|
|
332
|
+
@elements = @page.label_elements(:class => class_name)
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
Then(/^I should have (\d+) labels$/) do |num_labels|
|
|
336
|
+
expect(@elements.size).to eql num_labels.to_i
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
Then(/^the text for label (\d+) should be "([^"]*)"$/) do |label_num, text|
|
|
340
|
+
expect(@elements[label_num.to_i - 1].text).to eql text
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
When(/^I select all buttons using no identifier$/) do
|
|
344
|
+
@elements = @page.button_elements
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
When(/^I select all text fields using no identifier$/) do
|
|
348
|
+
@elements = @page.text_field_elements
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
When(/^I select all hidden fields using no identifier$/) do
|
|
352
|
+
@elements = @page.hidden_field_elements
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
When(/^I select all text areas using no identifier$/) do
|
|
356
|
+
@elements = @page.text_area_elements
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
When(/^I select all select lists using no identifier$/) do
|
|
360
|
+
@elements = @page.select_list_elements
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
When(/^I select all links using no identifier$/) do
|
|
364
|
+
@elements = @page.link_elements
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
When(/^I select all checkboxes using no identifier$/) do
|
|
368
|
+
@elements = @page.checkboxes_elements
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
When(/^I select all radio buttons using no identifier$/) do
|
|
372
|
+
@elements = @page.radio_button_elements
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
When(/^I select all divs using no identifier$/) do
|
|
376
|
+
@elements = @page.div_elements
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
When(/^I select all spans using no identifier$/) do
|
|
380
|
+
@elements = @page.span_elements
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
When(/^I select all tables using no identifier$/) do
|
|
384
|
+
@elements = @page.table_elements
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
When(/^I select all cells using no identifier$/) do
|
|
388
|
+
@elements = @page.cell_elements
|
|
389
|
+
end
|
|
390
|
+
|
|
391
|
+
When(/^I select the images using no identifier$/) do
|
|
392
|
+
@elements = @page.image_elements
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
When(/^I select the forms using no identifier$/) do
|
|
396
|
+
@elements = @page.form_elements
|
|
397
|
+
end
|
|
398
|
+
|
|
399
|
+
When(/^I select all list items using no identifier$/) do
|
|
400
|
+
@elements = @page.list_item_elements
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
When(/^I select all unordered lists using no identifier$/) do
|
|
404
|
+
@elements = @page.unordered_list_elements
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
When(/^I select all ordered lists using no identifier$/) do
|
|
408
|
+
@elements = @page.ordered_list_elements
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
When /^I select all h(\d+)s using no identifier$/ do |num|
|
|
412
|
+
@elements = @page.send "h#{num}_elements"
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
When(/^I select all paragraphs using no identifier$/) do
|
|
416
|
+
@elements = @page.paragraph_elements
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
When(/^I select all labels using no identifier$/) do
|
|
420
|
+
@elements = @page.label_elements
|
|
421
|
+
end
|
|
422
|
+
|
|
423
|
+
When(/^I select the file fields with class "([^"]*)"$/) do |class_name|
|
|
424
|
+
@elements = @page.file_field_elements(:class => class_name)
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
Then(/^I should have (\d+) file fields$/) do |num_file_fields|
|
|
428
|
+
expect(@elements.size).to eql num_file_fields.to_i
|
|
429
|
+
end
|
|
430
|
+
|
|
431
|
+
Then(/^the title for file field (\d+) should be "([^"]*)"$/) do |file_field_num, title|
|
|
432
|
+
expect(@elements[file_field_num.to_i - 1].attribute('title')).to eql title
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
When(/^I select all file fields using no identifier$/) do
|
|
436
|
+
@elements = @page.file_field_elements
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
When(/^I select the divs using the generated method$/) do
|
|
440
|
+
@elements = @page.the_divs_elements
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
When(/^I select the buttons using the generated method$/) do
|
|
444
|
+
@elements = @page.the_buttons_elements
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
When(/^I select the text field using the generated method$/) do
|
|
448
|
+
@elements = @page.the_text_fields_elements
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
When(/^I select the hidden fields using the generated method$/) do
|
|
452
|
+
@elements = @page.the_hidden_fields_elements
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
When(/^I select the text areas using the generated method$/) do
|
|
456
|
+
@elements = @page.the_text_areas_elements
|
|
457
|
+
end
|
|
458
|
+
|
|
459
|
+
When(/^I select the select lists using the generated method$/) do
|
|
460
|
+
@elements = @page.the_select_lists_elements
|
|
461
|
+
end
|
|
462
|
+
|
|
463
|
+
When(/^I select the links using the generated method$/) do
|
|
464
|
+
@elements = @page.the_links_elements
|
|
465
|
+
end
|
|
466
|
+
|
|
467
|
+
When(/^I select the check boxes using the generated method$/) do
|
|
468
|
+
@elements = @page.the_checkboxes_elements
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
When(/^I select the radio buttons using the generated method$/) do
|
|
472
|
+
@elements = @page.the_radio_buttons_elements
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
When(/^I select the spans using the generated method$/) do
|
|
476
|
+
@elements = @page.the_spans_elements
|
|
477
|
+
end
|
|
478
|
+
|
|
479
|
+
When(/^I select the tables using the generated method$/) do
|
|
480
|
+
@elements = @page.the_tables_elements
|
|
481
|
+
end
|
|
482
|
+
|
|
483
|
+
When(/^I select the cells using the generated method$/) do
|
|
484
|
+
@elements = @page.the_cells_elements
|
|
485
|
+
end
|
|
486
|
+
|
|
487
|
+
When(/^I select the images using the generated method$/) do
|
|
488
|
+
@elements = @page.the_images_elements
|
|
489
|
+
end
|
|
490
|
+
|
|
491
|
+
When(/^I select the forms using the generated method$/) do
|
|
492
|
+
@elements = @page.the_forms_elements
|
|
493
|
+
end
|
|
494
|
+
|
|
495
|
+
When(/^I select the list items using the generated method$/) do
|
|
496
|
+
@elements = @page.the_list_items_elements
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
When(/^I select the unordered lists using the generated method$/) do
|
|
500
|
+
@elements = @page.the_unordered_lists_elements
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
When(/^I select the ordered lists using the generated method$/) do
|
|
504
|
+
@elements = @page.the_ordered_lists_elements
|
|
505
|
+
end
|
|
506
|
+
|
|
507
|
+
When(/^I select the h(\d+)s using the generated method$/) do |num|
|
|
508
|
+
@elements = @page.send("the_h#{num.to_i}s_elements")
|
|
509
|
+
end
|
|
510
|
+
|
|
511
|
+
When(/^I select the paragraphs using the generated method$/) do
|
|
512
|
+
@elements = @page.the_paragraphs_elements
|
|
513
|
+
end
|
|
514
|
+
|
|
515
|
+
When(/^I select the labels using the generated method$/) do
|
|
516
|
+
@elements = @page.the_labels_elements
|
|
517
|
+
end
|
|
518
|
+
|
|
519
|
+
When(/^I select the file fields using the generated method$/) do
|
|
520
|
+
@elements = @page.the_file_fields_elements
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
When(/^I select the divs using a block$/) do
|
|
524
|
+
@elements = @page.block_divs_elements
|
|
525
|
+
end
|
|
526
|
+
|
|
527
|
+
When(/^I select the multiple elements with a tag label$/) do
|
|
528
|
+
@elements = @page.generic_label_elements
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
When(/^I select the bs$/) do
|
|
532
|
+
@elements = @page.b_elements
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
Then(/^I should have (\d+) bs$/) do |num_bs|
|
|
536
|
+
expect(@elements.size).to eql num_bs.to_i
|
|
537
|
+
end
|
|
538
|
+
|
|
539
|
+
Then(/^the text for b (\d+) should be "([^"]*)"$/) do |b_num, text|
|
|
540
|
+
expect(@elements[b_num.to_i - 1].text).to eql text
|
|
541
|
+
end
|
|
542
|
+
|
|
543
|
+
When(/^I select the is$/) do
|
|
544
|
+
@elements = @page.i_elements
|
|
545
|
+
end
|
|
546
|
+
|
|
547
|
+
Then(/^I should have (\d+) is$/) do |num_is|
|
|
548
|
+
expect(@elements.size).to eql num_is.to_i
|
|
549
|
+
end
|
|
550
|
+
|
|
551
|
+
Then(/^the text for i (\d+) should be "([^"]*)"$/) do |i_num, text|
|
|
552
|
+
expect(@elements[i_num.to_i - 1].text).to eql text
|
|
553
|
+
end
|
|
554
|
+
|
|
555
|
+
When(/^I select all check boxes using no identifier$/) do
|
|
556
|
+
@elements = @page.checkbox_elements
|
|
557
|
+
end
|