meeane-page-object 0.1.8

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