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,114 @@
1
+ Feature: Table
2
+ In order to interact with tables
3
+ Testers will need access and interrogation ability
4
+
5
+
6
+ Background:
7
+ Given I am on the static elements page
8
+
9
+ Scenario: Retrieve a table
10
+ When I retrieve a table element
11
+ Then I should know it is visible
12
+
13
+ Scenario: Determine if a table exists
14
+ When I retrieve a table element
15
+ Then I should know it exists
16
+
17
+ Scenario: Retrieve the data from a table
18
+ When I retrieve a table element
19
+ Then the data for row "2" should be "Data1" and "Data2"
20
+ And the data for row "3" should be "Data3" and "Data4"
21
+ And the table should have "3" rows
22
+ And row "2" should have "2" columns
23
+ And the data for the second row should be "Data1" and "Data2"
24
+ And the data for the last row should be "Data3" and "Data4"
25
+
26
+ Scenario: Retrieve data from a table using a row header
27
+ When I retrieve a table element
28
+ Then the data for row "Data3" should be "Data3" and "Data4"
29
+
30
+ Scenario: Retrieve data from a table using a partial row header
31
+ When I retrieve a table element
32
+ Then the data for row "ata3" should be "Data3" and "Data4"
33
+
34
+ Scenario: Retrieve data from a table using a row header in the 2nd column
35
+ When I retrieve a table element
36
+ Then the data for row "Data4" should be "Data3" and "Data4"
37
+
38
+ Scenario: Retrieve data from a table using a partial row header in the 2nd column
39
+ When I retrieve a table element
40
+ Then the data for row "ata4" should be "Data3" and "Data4"
41
+
42
+ Scenario: Retrieve data from a table using a column header
43
+ When I retrieve a table element
44
+ Then the data for column "Header" and row "3" should be "Data4"
45
+
46
+ Scenario: Retrieve data from a table with a thead using a column header
47
+ When I retrieve a table with thead element
48
+ Then the data for column "Col1" and row "2" should be "Data1"
49
+
50
+ Scenario: Retrieve data from the first row of a table with a thead using a column header
51
+ When I retrieve a table with thead element
52
+ Then the data for column "Col1" and row "1" should be "Col1"
53
+
54
+ Scenario: Retrieve data from a table using a partial column header
55
+ When I retrieve a table element
56
+ Then the data for column "eader" and row "3" should be "Data4"
57
+
58
+ Scenario: Retrieve data from a table using both headers
59
+ When I retrieve a table element
60
+ Then the data for row "Data3" and column "eader" should be "Data4"
61
+
62
+ Scenario: Retrieve data from a table with an incorrect row header
63
+ When I retrieve a table element
64
+ Then the data for row "Data20" should be nil
65
+
66
+ Scenario: Retrieve data from a table with an incorrect column header
67
+ When I retrieve a table element
68
+ Then the data for row "Data3" and column "Data20" should be nil
69
+
70
+ Scenario: Retrieve data from a table that does not have a cell which corresponds to a column header
71
+ When I retrieve a table with thead element
72
+ Then the data for row "Data5" and column "Col2" should be nil
73
+
74
+ Scenario Outline: Locating table cells on the Page
75
+ When I retrieve a table element by "<search_by>"
76
+ Then the data for row "2" should be "Data1" and "Data2"
77
+
78
+ Scenarios:
79
+ | search_by |
80
+ | id |
81
+ | class |
82
+ | xpath |
83
+ | index |
84
+ | name |
85
+
86
+ @selenium_only
87
+ Scenario Outline: Locating table cells on the Page
88
+ When I retrieve a table element by "<search_by>"
89
+ Then the data for row "2" should be "Data1" and "Data2"
90
+
91
+ Scenarios:
92
+ | search_by |
93
+ | css |
94
+
95
+ Scenario Outline: Locating table using multiple parameters
96
+ When I retrieve a table element by "<param1>" and "<param2>"
97
+ Then the data for row "2" should be "Data1" and "Data2"
98
+
99
+ Scenarios:
100
+ | param1 | param2 |
101
+ | class | index |
102
+ | name | index |
103
+
104
+ Scenario: Finding a table dynamically
105
+ When I retrieve a table element while the script is executing
106
+ And the data for row "2" should be "Data1" and "Data2"
107
+
108
+ @watir_only
109
+ Scenario: Finding an existing table
110
+ Then I should see that the table exists
111
+
112
+ Scenario: Getting the text from a table
113
+ Then I should see the text includes "Data1" when I retrieve it by "id"
114
+ And I should see the text includes "Data2" when I retrieve it by "id"
@@ -0,0 +1,45 @@
1
+ Feature: Table Cell
2
+
3
+
4
+ Background:
5
+ Given I am on the static elements page
6
+
7
+ Scenario: Retrieving the text from a table cell
8
+ When I retrieve the data from the table cell
9
+ Then the cell data should be 'Data4'
10
+
11
+ Scenario Outline: Locating table cells on the Page
12
+ When I search for the table cell by "<search_by>"
13
+ Then the cell data should be 'Data4'
14
+
15
+ Scenarios:
16
+ | search_by |
17
+ | id |
18
+ | class |
19
+ | xpath |
20
+ | name |
21
+ | text |
22
+ | css |
23
+
24
+ @watir_only
25
+ Scenario Outline: Locating table cells on the Page with watir
26
+ When I search for the table cell by "<search_by>"
27
+ Then the cell data should be 'Data4'
28
+
29
+ Scenarios:
30
+ | search_by |
31
+ | index |
32
+
33
+ Scenario Outline: Locating table cell using multiple parameters
34
+ When I retrieve a table cell element by "<param1>" and "<param2>"
35
+ Then the cell data should be 'Data4'
36
+
37
+ Scenarios:
38
+ | param1 | param2 |
39
+ | class | index |
40
+ | name | index |
41
+
42
+ Scenario: Finding a table cell dynamically
43
+ When I retrieve a table cell element while the script is executing
44
+ Then I should see that the cell exists
45
+ And the cell data should be 'Data4'
@@ -0,0 +1,51 @@
1
+ Feature: Text Area
2
+
3
+
4
+ Background:
5
+ Given I am on the static elements page
6
+
7
+ Scenario: Setting and getting a value from a text area
8
+ When I type "abcdefghijklmnop" into the text area
9
+ Then the text area should contain "abcdefghijklmnop"
10
+
11
+ Scenario Outline: Locating text area on the Page
12
+ When I search for the text area by "<search_by>"
13
+ Then I should be able to type "I found it" into the area
14
+
15
+ Scenarios:
16
+ | search_by |
17
+ | id |
18
+ | class |
19
+ | name |
20
+ | xpath |
21
+ | index |
22
+ | label |
23
+
24
+ @selenium_only
25
+ Scenario Outline: Locating text area on the Page
26
+ When I search for the text area by "<search_by>"
27
+ Then I should be able to type "I found it" into the area
28
+
29
+ Scenarios:
30
+ | search_by |
31
+ | css |
32
+
33
+ Scenario Outline: Locating a text area using multiple parameters
34
+ When I search for the text area by "<param1>" and "<param2>"
35
+ Then I should be able to type "I found it" into the area
36
+
37
+ Scenarios:
38
+ | param1 | param2 |
39
+ | class | index |
40
+ | name | index |
41
+
42
+ Scenario: Finding a text area dynamically
43
+ When I find a text area while the script is executing
44
+ Then I should see that the text area exists
45
+ And I should be able to type "I found it" into the area element
46
+
47
+ Scenario: Clearing the text area
48
+ When I type "abcdefghijklmnop" into the text area
49
+ Then the text area should contain "abcdefghijklmnop"
50
+ When I clear the text area
51
+ Then the text area should contain ""
@@ -0,0 +1,70 @@
1
+ Feature: Text Fields
2
+ In order to interact with text fields
3
+ Testers will need access and interrogation ability
4
+
5
+
6
+ Background:
7
+ Given I am on the static elements page
8
+
9
+ Scenario: Setting and getting a value from a text field
10
+ When I type "abcDEF" into the text field
11
+ Then the text field should contain "abcDEF"
12
+
13
+ Scenario Outline: Locating text fields on the Page
14
+ When I search for the text field by "<search_by>"
15
+ Then I should be able to type "I found it" into the field
16
+
17
+ Examples:
18
+ | search_by |
19
+ | id |
20
+ | class |
21
+ | name |
22
+ | xpath |
23
+ | index |
24
+ | title |
25
+ | text |
26
+ | label |
27
+
28
+
29
+ @watir_only
30
+ Scenario Outline: Locating text fields on the Page using Watir
31
+ When I search for the text field by "<search_by>"
32
+ Then I should be able to type "I found it" into the field
33
+ Examples:
34
+ | search_by |
35
+ | data_field |
36
+
37
+ @selenium_only
38
+ Scenario Outline: Locating text fields on the Page using Selenium
39
+ When I search for the text field by "<search_by>"
40
+ Then I should be able to type "I found it" into the field
41
+
42
+ Examples:
43
+ | search_by |
44
+ | css |
45
+
46
+
47
+ Scenario Outline: Locating a text field using multiple parameters
48
+ When I search for the text field by "<param1>" and "<param2>"
49
+ Then I should be able to type "I found it" into the field
50
+
51
+ Examples:
52
+ | param1 | param2 |
53
+ | class | index |
54
+ | name | index |
55
+
56
+ Scenario: Retrieve a text field
57
+ When I retrieve a text field
58
+ Then I should know it exists
59
+ And I should know it is visible
60
+
61
+ Scenario: Finding a text field dynamically
62
+ When I find a text field while the script is executing
63
+ Then I should see that the text field exists
64
+ And I should be able to type "I found it" into the field element
65
+
66
+ Scenario: Appending text to a text field
67
+ When I type "abcd" into the text field
68
+ And I append "efg" to the text field
69
+ Then the text field should contain "abcdefg"
70
+
@@ -0,0 +1,56 @@
1
+ Feature: Unordered list
2
+
3
+ Background:
4
+ Given I am on the static elements page
5
+
6
+ Scenario: Getting the first element from the unordered list
7
+ When I get the first item from the unordered list
8
+ Then the list items text should be "Item One"
9
+
10
+ Scenario Outline: Locating unordered lists on the page
11
+ When I search for the unordered list by "<search_by>"
12
+ And I get the first item from the list
13
+ Then the list items text should be "Item One"
14
+ And the list should contain 3 items
15
+ And each item should contain "Item"
16
+
17
+ Scenarios:
18
+ | search_by |
19
+ | id |
20
+ | class |
21
+ | xpath |
22
+ | index |
23
+ | name |
24
+
25
+ @selenium_only
26
+ Scenario Outline: Locating unordered lists on the page
27
+ When I search for the unordered list by "<search_by>"
28
+ And I get the first item from the list
29
+ Then the list items text should be "Item One"
30
+ And the list should contain 3 items
31
+ And each item should contain "Item"
32
+
33
+ Scenarios:
34
+ | search_by |
35
+ | css |
36
+
37
+ Scenario Outline: Locating unordered lists using multiple parameters
38
+ When I search for the unordered list by "<param1>" and "<param2>"
39
+ And I get the first item from the list
40
+ Then the list items text should be "Item One"
41
+
42
+ Scenarios:
43
+ | param1 | param2 |
44
+ | class | index |
45
+ | name | index |
46
+
47
+ Scenario: Finding a unordered list dynamically
48
+ When I search for the unordered list while the script is executing
49
+ Then I should see that the unordered list exists
50
+ When I get the first item from the list
51
+ Then the list items text should be "Item One"
52
+
53
+ Scenario: Getting the text from an unordered list
54
+ Then the text for the unordered list should contain "Item One"
55
+ And the text for the unordered list should contain "Item Two"
56
+ And the text for the unordered list should contain "Item Three"
@@ -0,0 +1,73 @@
1
+ Feature: Support for video element
2
+
3
+ Background:
4
+ Given I am on the static elements page
5
+
6
+ Scenario: finding an video element
7
+ When I retrieve the video element
8
+ Then I should know it exists
9
+ And I should know it is visible
10
+
11
+ Scenario Outline: Locating a video element on the page
12
+ When I search for the video element by "<search_by>"
13
+ Then I should know it is visible
14
+
15
+ Examples:
16
+ | search_by |
17
+ | id |
18
+ | class |
19
+ | name |
20
+ | xpath |
21
+ | index |
22
+ | css |
23
+
24
+ Scenario Outline: Locating videos using multiple parameters
25
+ When I search for the video element by "<param1>" and "<param2>"
26
+ Then I should know it is visible
27
+
28
+ Examples:
29
+ | param1 | param2 |
30
+ | class | index |
31
+ | name | index |
32
+
33
+ Scenario: Should know if it is autoplay
34
+ When I retrieve the video element
35
+ Then I should know the video is not autoplay
36
+
37
+ Scenario: Should know if the controls are displayed
38
+ When I retrieve the video element
39
+ Then I should know that the controls are displayed
40
+
41
+ Scenario: Should know if it is paused
42
+ When I retrieve the video element
43
+ Then I should know that the video is paused
44
+
45
+ Scenario: Should know its duration
46
+ When I retrieve the video element
47
+ Then I should know that the duration is greater than 12 seconds
48
+
49
+ Scenario: Should know its volume
50
+ When I retrieve the video element
51
+ Then I should know that its volume is 1
52
+
53
+ Scenario: Should know its height and width
54
+ When I retrieve the video element
55
+ Then I should know that its height is 240 pixels
56
+ And I should knot what its width is 320 pixels
57
+
58
+ Scenario: Should know if it has ended
59
+ When I retrieve the video element
60
+ Then I should know that it has not ended
61
+
62
+ Scenario: Should know if it is seeking
63
+ When I retrieve the video element
64
+ Then I should know that it is not seeking
65
+
66
+ Scenario: Should know if it is in a loop
67
+ When I retrieve the video element
68
+ Then I should know that it is not in a loop
69
+
70
+ Scenario: Should know if it is muted
71
+ When I retrieve the video element
72
+ Then I should know that it is muted
73
+