page-object 0.7.5.1 → 0.7.6

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 (50) hide show
  1. data/ChangeLog +8 -0
  2. data/features/area.feature +9 -0
  3. data/features/audio.feature +9 -0
  4. data/features/canvas.feature +9 -0
  5. data/features/check_box.feature +9 -0
  6. data/features/element.feature +5 -0
  7. data/features/file_field.feature +9 -0
  8. data/features/form.feature +9 -0
  9. data/features/headings.feature +55 -0
  10. data/features/hidden_field.feature +9 -0
  11. data/features/html/double_click.html +13 -0
  12. data/features/html/failure.html +8 -0
  13. data/features/html/static_elements.html +1 -0
  14. data/features/image.feature +10 -0
  15. data/features/label.feature +9 -0
  16. data/features/link.feature +9 -0
  17. data/features/list_item.feature +9 -0
  18. data/features/ordered_list.feature +12 -0
  19. data/features/page_level_actions.feature +10 -0
  20. data/features/paragraph.feature +9 -0
  21. data/features/radio_button.feature +10 -0
  22. data/features/span.feature +9 -0
  23. data/features/step_definitions/element_steps.rb +19 -0
  24. data/features/step_definitions/page_level_actions_steps.rb +6 -0
  25. data/features/step_definitions/span_steps.rb +1 -1
  26. data/features/support/page.rb +30 -0
  27. data/features/support/url_helper.rb +4 -1
  28. data/features/table.feature +9 -0
  29. data/features/table_cell.feature +9 -0
  30. data/features/text_area.feature +8 -0
  31. data/features/unordered_list.feature +12 -0
  32. data/features/video.feature +9 -0
  33. data/lib/page-object.rb +4 -2
  34. data/lib/page-object/accessors.rb +57 -0
  35. data/lib/page-object/elements/button.rb +1 -1
  36. data/lib/page-object/elements/div.rb +1 -1
  37. data/lib/page-object/elements/element.rb +2 -7
  38. data/lib/page-object/elements/link.rb +1 -1
  39. data/lib/page-object/elements/select_list.rb +0 -4
  40. data/lib/page-object/elements/span.rb +1 -1
  41. data/lib/page-object/elements/text_field.rb +1 -1
  42. data/lib/page-object/platforms/selenium_webdriver/element.rb +8 -0
  43. data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1 -1
  44. data/lib/page-object/platforms/watir_webdriver/element.rb +7 -0
  45. data/lib/page-object/version.rb +1 -1
  46. data/page-object.gemspec +1 -1
  47. data/spec/page-object/elements/selenium_element_spec.rb +1 -0
  48. data/spec/page-object/elements/watir_element_spec.rb +5 -0
  49. data/spec/page-object/page-object_spec.rb +35 -3
  50. metadata +10 -6
@@ -86,6 +86,10 @@ When /^I open a second window$/ do
86
86
  @page.open_window
87
87
  end
88
88
 
89
+ When /^I open a third window$/ do
90
+ @page.open_another_window
91
+ end
92
+
89
93
  class SecondPage
90
94
  include PageObject
91
95
  end
@@ -93,11 +97,13 @@ end
93
97
  Then /^I should be able to attach to a page object using title$/ do
94
98
  @second_page = SecondPage.new(@browser)
95
99
  @second_page.attach_to_window(:title => "Success")
100
+ @second_page.title.should == "Success"
96
101
  end
97
102
 
98
103
  Then /^I should be able to attach to a page object using url$/ do
99
104
  @second_page = SecondPage.new(@browser)
100
105
  @second_page.attach_to_window(:url => "success.html")
106
+ @second_page.current_url.should include 'success.html'
101
107
  end
102
108
 
103
109
  Then /^I should be able to refresh the page$/ do
@@ -16,4 +16,4 @@ end
16
16
 
17
17
  Then /^I should see that the span exists$/ do
18
18
  @page.span_id?.should == true
19
- end
19
+ end
@@ -24,6 +24,7 @@ class Page
24
24
 
25
25
  text_area(:text_area_id, :id => "text_area_id")
26
26
  text_area(:text_area_class, :class => "text_area_class")
27
+ text_area(:text_area_css, :css => ".text_area_class")
27
28
  text_area(:text_area_name, :name => "text_area_name")
28
29
  text_area(:text_area_xpath, :xpath => "//textarea")
29
30
  text_area(:text_area_css, :css => "textarea")
@@ -36,6 +37,7 @@ class Page
36
37
 
37
38
  hidden_field(:hidden_field_id, :id => "hidden_field_id")
38
39
  hidden_field(:hidden_field_class, :class => "hidden_field_class")
40
+ hidden_field(:hidden_field_css, :css => ".hidden_field_class")
39
41
  hidden_field(:hidden_field_name, :name => "hidden_field_name")
40
42
  hidden_field(:hidden_field_xpath, :xpath => "//input[@type='hidden']")
41
43
  hidden_field(:hidden_field_css, :css => "input[type='hidden']")
@@ -49,6 +51,7 @@ class Page
49
51
  link(:google_search_id, :id => "link_id")
50
52
  link(:google_search_name, :name => "link_name")
51
53
  link(:google_search_class, :class => "link_class")
54
+ link(:google_search_css, :css => ".link_class")
52
55
  link(:google_search_xpath, :xpath => "//a[text()='Google Search']")
53
56
  link(:google_search_link, :link => "Google Search")
54
57
  link(:google_search_link_text, :link_text => "Google Search")
@@ -73,6 +76,7 @@ class Page
73
76
  checkbox(:cb_id, :id => 'cb_id')
74
77
  checkbox(:cb_name, :name => 'cb_name')
75
78
  checkbox(:cb_class, :class => 'cb_class')
79
+ checkbox(:cb_css, :css => '.cb_class')
76
80
  checkbox(:cb_index, :index => 0)
77
81
  checkbox(:cb_xpath, :xpath => "//input[@type='checkbox']")
78
82
  checkbox(:cb_value, :value => '1')
@@ -82,6 +86,7 @@ class Page
82
86
  radio_button(:milk_id, :id => 'milk_id')
83
87
  radio_button(:milk_name, :name => 'milk_name')
84
88
  radio_button(:milk_class, :class => 'milk_class')
89
+ radio_button(:milk_css, :css => '.milk_class')
85
90
  radio_button(:milk_index, :index => 0)
86
91
  radio_button(:milk_value, :value => 'Milk')
87
92
  radio_button(:milk_xpath, :xpath => "//input[@type='radio']")
@@ -93,6 +98,7 @@ class Page
93
98
  div(:div_id, :id => 'div_id')
94
99
  div(:div_name, :name => 'div_name')
95
100
  div(:div_class, :class => 'div_class')
101
+ div(:div_css, :css => '.div_class')
96
102
  div(:div_text, :text => 'page-object rocks!')
97
103
  div(:div_index, :index => 0)
98
104
  div(:div_xpath, :xpath => '//div')
@@ -104,6 +110,7 @@ class Page
104
110
  span(:span_id, :id => 'span_id')
105
111
  span(:span_name, :name => 'span_name')
106
112
  span(:span_class, :class => 'span_class')
113
+ span(:span_css, :css => '.span_class')
107
114
  span(:span_index, :index => 0)
108
115
  span(:span_text, :text => 'My alert')
109
116
  span(:span_title, :title => 'span_title')
@@ -114,6 +121,7 @@ class Page
114
121
  table(:table_id, :id => 'table_id')
115
122
  table(:table_name, :name => 'table_name')
116
123
  table(:table_class, :class => 'table_class')
124
+ table(:table_css, :css => '.table_class')
117
125
  table(:table_index, :index => 0)
118
126
  table(:table_xpath, :xpath => '//table')
119
127
  table(:table_class_index, :class => "table_class", :index => 0)
@@ -123,6 +131,7 @@ class Page
123
131
  cell(:cell_id, :id => 'cell_id')
124
132
  cell(:cell_name, :name => 'cell_name')
125
133
  cell(:cell_class, :class => 'cell_class')
134
+ cell(:cell_css, :css => '.cell_class')
126
135
  cell(:cell_index, :index => 3)
127
136
  cell(:cell_text, :text => 'Data4')
128
137
  cell(:cell_xpath, :xpath => '//table//tr[2]//td[2]')
@@ -132,6 +141,7 @@ class Page
132
141
  button(:button_id, :id => 'button_id')
133
142
  button(:button_name, :name => 'button_name')
134
143
  button(:button_class, :class => 'button_class')
144
+ button(:button_css, :css => '.button_class')
135
145
  button(:button_index, :index => 0)
136
146
  button(:button_xpath, :xpath=> "//input[@type='submit']")
137
147
  button(:button_text, :text => 'Click Me')
@@ -147,6 +157,7 @@ class Page
147
157
  button(:btn_id, :id => 'btn_id')
148
158
  button(:btn_name, :name => 'btn_name')
149
159
  button(:btn_class, :class => 'btn_class')
160
+ button(:btn_css, :css => '.btn_class')
150
161
  button(:btn_index, :index => 0)
151
162
  button(:btn_text, :text => 'Click Me Too')
152
163
  button(:btn_value, :value => 'Click Me Too')
@@ -159,6 +170,7 @@ class Page
159
170
  image(:image_id, :id => 'image_id')
160
171
  image(:image_name, :name => 'image_name')
161
172
  image(:image_class, :class => 'image_class')
173
+ image(:image_css, :css => '.image_class')
162
174
  image(:image_index, :index => 1)
163
175
  image(:image_xpath, :xpath => '//img[2]')
164
176
  image(:image_alt, :alt => 'image_alt')
@@ -169,6 +181,7 @@ class Page
169
181
  form(:form_id, :id => 'form_id')
170
182
  form(:form_name, :id => 'form_name')
171
183
  form(:form_class, :class => 'form_class')
184
+ form(:form_css, :css => '.form_class')
172
185
  form(:form_index, :index => 0)
173
186
  form(:form_xpath, :xpath => '//form')
174
187
  form(:form_action, :action => "success.html")
@@ -178,6 +191,7 @@ class Page
178
191
  list_item(:li_id, :id => 'li_id')
179
192
  list_item(:li_name, :name => 'li_name')
180
193
  list_item(:li_class, :class => 'li_class')
194
+ list_item(:li_css, :css => '.li_class')
181
195
  list_item(:li_index, :index => 0)
182
196
  list_item(:li_text, :text => 'Item One')
183
197
  list_item(:li_xpath, :xpath => '//li[1]')
@@ -187,6 +201,7 @@ class Page
187
201
  unordered_list(:ul_id, :id => 'ul_id')
188
202
  unordered_list(:ul_name, :name => 'ul_name')
189
203
  unordered_list(:ul_class, :class => 'ul_class')
204
+ unordered_list(:ul_css, :css => '.ul_class')
190
205
  unordered_list(:ul_index, :index => 0)
191
206
  unordered_list(:ul_xpath, :xpath => '//ul')
192
207
  unordered_list(:ul_class_index, :class => "ul_class", :index => 0)
@@ -195,6 +210,7 @@ class Page
195
210
  ordered_list(:ol_id, :id => 'ol_id')
196
211
  ordered_list(:ol_name, :name => 'ol_name')
197
212
  ordered_list(:ol_class, :class => 'ol_class')
213
+ ordered_list(:ol_css, :css => '.ol_class')
198
214
  ordered_list(:ol_index, :index => 0)
199
215
  ordered_list(:ol_xpath, :xpath => '//ol')
200
216
  ordered_list(:ol_class_index, :class => "ol_class", :index => 0)
@@ -202,6 +218,7 @@ class Page
202
218
 
203
219
  h1(:h1_id, :id => 'h1_id')
204
220
  h1(:h1_class, :class => 'h1_class')
221
+ h1(:h1_css, :css => '.h1_class')
205
222
  h1(:h1_name, :name => 'h1_name')
206
223
  h1(:h1_index, :index => 0)
207
224
  h1(:h1_xpath, :xpath => '//h1')
@@ -210,6 +227,7 @@ class Page
210
227
 
211
228
  h2(:h2_id, :id => 'h2_id')
212
229
  h2(:h2_class, :class => 'h2_class')
230
+ h2(:h2_css, :css => '.h2_class')
213
231
  h2(:h2_name, :name => 'h2_name')
214
232
  h2(:h2_index, :index => 0)
215
233
  h2(:h2_xpath, :xpath => '//h2')
@@ -218,6 +236,7 @@ class Page
218
236
 
219
237
  h3(:h3_id, :id => 'h3_id')
220
238
  h3(:h3_class, :class => 'h3_class')
239
+ h3(:h3_css, :css => '.h3_class')
221
240
  h3(:h3_name, :name => 'h3_name')
222
241
  h3(:h3_index, :index => 0)
223
242
  h3(:h3_xpath, :xpath => '//h3')
@@ -226,6 +245,7 @@ class Page
226
245
 
227
246
  h4(:h4_id, :id => 'h4_id')
228
247
  h4(:h4_class, :class => 'h4_class')
248
+ h4(:h4_css, :css => '.h4_class')
229
249
  h4(:h4_name, :name => 'h4_name')
230
250
  h4(:h4_index, :index => 0)
231
251
  h4(:h4_xpath, :xpath => '//h4')
@@ -234,6 +254,7 @@ class Page
234
254
 
235
255
  h5(:h5_id, :id => 'h5_id')
236
256
  h5(:h5_class, :class => 'h5_class')
257
+ h5(:h5_css, :css => '.h5_class')
237
258
  h5(:h5_name, :name => 'h5_name')
238
259
  h5(:h5_index, :index => 0)
239
260
  h5(:h5_xpath, :xpath => '//h5')
@@ -242,6 +263,7 @@ class Page
242
263
 
243
264
  h6(:h6_id, :id => 'h6_id')
244
265
  h6(:h6_class, :class => 'h6_class')
266
+ h6(:h6_css, :css => '.h6_class')
245
267
  h6(:h6_name, :name => 'h6_name')
246
268
  h6(:h6_index, :index => 0)
247
269
  h6(:h6_xpath, :xpath => '//h6')
@@ -250,6 +272,7 @@ class Page
250
272
 
251
273
  paragraph(:p_id, :id => 'p_id')
252
274
  paragraph(:p_class, :class => 'p_class')
275
+ paragraph(:p_css, :css => '.p_class')
253
276
  paragraph(:p_name, :name => 'p_name')
254
277
  paragraph(:p_index, :index => 0)
255
278
  paragraph(:p_xpath, :xpath => '//p')
@@ -265,6 +288,7 @@ class Page
265
288
  file_field(:file_field_id, :id => 'file_field_id')
266
289
  file_field(:file_field_name, :name => 'file_field_name')
267
290
  file_field(:file_field_class, :class => 'file_field_class')
291
+ file_field(:file_field_css, :css => '.file_field_class')
268
292
  file_field(:file_field_index, :index => 0)
269
293
  file_field(:file_field_title, :title => 'file_field_title')
270
294
  file_field(:file_field_class_index, :class => 'file_field_class', :index => 0)
@@ -274,6 +298,7 @@ class Page
274
298
  label(:label_id, :id => 'label_id')
275
299
  label(:label_name, :name => 'label_name')
276
300
  label(:label_class, :class => 'label_class')
301
+ label(:label_css, :css => '.label_class')
277
302
  label(:label_text, :text => 'page-object is the best!')
278
303
  label(:label_index, :index => 1)
279
304
  label(:label_xpath, :xpath => '//label[2]')
@@ -281,11 +306,13 @@ class Page
281
306
  label(:label_name_index, :name => "label_name", :index => 0)
282
307
 
283
308
  link(:open_window, :text => 'New Window')
309
+ link(:open_another_window, :text => 'Another New Window')
284
310
  link(:child, :id => 'child')
285
311
 
286
312
  area(:area_id, :id => 'area')
287
313
  area(:area_name, :name => 'area')
288
314
  area(:area_class, :class => 'area')
315
+ area(:area_css, :css => '.area')
289
316
  area(:area_index, :index => 0)
290
317
  area(:area_xpath, :xpath => '//area')
291
318
  area(:area_class_index, :class => 'area', :index => 0)
@@ -294,6 +321,7 @@ class Page
294
321
  canvas(:canvas_id, :id => 'canvas')
295
322
  canvas(:canvas_name, :name => 'canvas')
296
323
  canvas(:canvas_class, :class => 'canvas')
324
+ canvas(:canvas_css, :css => '.canvas')
297
325
  canvas(:canvas_index, :index => 0)
298
326
  canvas(:canvas_xpath, :xpath => '//canvas')
299
327
  canvas(:canvas_class_index, :class => 'canvas', :index => 0)
@@ -302,6 +330,7 @@ class Page
302
330
  audio(:audio_id, :id => 'audio')
303
331
  audio(:audio_name, :name => 'audio')
304
332
  audio(:audio_class, :class => 'audio')
333
+ audio(:audio_css, :css => '.audio')
305
334
  audio(:audio_index, :index => 0)
306
335
  audio(:audio_xpath, :xpath => '//audio')
307
336
  audio(:audio_class_index, :class => 'audio', :index => 0)
@@ -310,6 +339,7 @@ class Page
310
339
  video(:video_id, :id => 'video')
311
340
  video(:video_name, :name => 'video')
312
341
  video(:video_class, :class => 'video')
342
+ video(:video_css, :css => '.video')
313
343
  video(:video_index, :index => 0)
314
344
  video(:video_xpath, :xpath => '//video')
315
345
  video(:video_class_index, :class => 'video', :index => 0)
@@ -8,7 +8,6 @@ module UrlHelper
8
8
  "file://#{html}"
9
9
  end
10
10
 
11
-
12
11
  def static_elements
13
12
  "#{files}/static_elements.html"
14
13
  end
@@ -48,5 +47,9 @@ module UrlHelper
48
47
  def hover
49
48
  "#{files}/hover.html"
50
49
  end
50
+
51
+ def double_click
52
+ "#{files}/double_click.html"
53
+ end
51
54
  end
52
55
  end
@@ -86,6 +86,15 @@ Feature: Table
86
86
  | index |
87
87
  | name |
88
88
 
89
+ @selenium_only
90
+ Scenario Outline: Locating table cells on the Page
91
+ When I retrieve a table element by "<search_by>"
92
+ Then the data for row "1" should be "Data1" and "Data2"
93
+
94
+ Scenarios:
95
+ | search_by |
96
+ | css |
97
+
89
98
  Scenario Outline: Locating table using multiple parameters
90
99
  When I retrieve a table element by "<param1>" and "<param2>"
91
100
  Then the data for row "1" should be "Data1" and "Data2"
@@ -20,6 +20,15 @@ Feature: Table Cell
20
20
  | name |
21
21
  | text |
22
22
 
23
+ @selenium_only
24
+ Scenario Outline: Locating table cells on the Page
25
+ When I search for the table cell by "<search_by>"
26
+ Then the cell data should be 'Data4'
27
+
28
+ Scenarios:
29
+ | search_by |
30
+ | css |
31
+
23
32
  @watir_only
24
33
  Scenario Outline: Locating table cells on the Page with watir
25
34
  When I search for the table cell by "<search_by>"
@@ -20,6 +20,14 @@ Feature: Text Area
20
20
  | xpath |
21
21
  | index |
22
22
 
23
+ @selenium_only
24
+ Scenario Outline: Locating text area on the Page
25
+ When I search for the text area by "<search_by>"
26
+ Then I should be able to type "I found it" into the area
27
+
28
+ Scenarios:
29
+ | search_by |
30
+ | css |
23
31
 
24
32
  Scenario Outline: Locating a text area using multiple parameters
25
33
  When I search for the text area by "<param1>" and "<param2>"
@@ -22,6 +22,18 @@ Feature: Unordered list
22
22
  | index |
23
23
  | name |
24
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
+
25
37
  Scenario Outline: Locating unordered lists using multiple parameters
26
38
  When I search for the unordered list by "<param1>" and "<param2>"
27
39
  And I get the first item from the list
@@ -20,6 +20,15 @@ Feature: Support for video element
20
20
  | xpath |
21
21
  | index |
22
22
 
23
+ @selenium_only
24
+ Scenario Outline: Locating a video element on the page
25
+ When I search for the video element by "<search_by>"
26
+ Then I should know it is visible
27
+
28
+ Scenarios:
29
+ | search_by |
30
+ | css |
31
+
23
32
  Scenario Outline: Locating videos using multiple parameters
24
33
  When I search for the video element by "<param1>" and "<param2>"
25
34
  Then I should know it is visible
@@ -48,13 +48,15 @@ module PageObject
48
48
  attr_reader :platform
49
49
 
50
50
  #
51
- # Construct a new page object. Upon initialization of the page it will call a method named
52
- # initialize_page if it exists.
51
+ # Construct a new page object. Prior to browser initialization it will call
52
+ # a method named initialize_accessors if it exists. Upon initialization of
53
+ # the page it will call a method named initialize_page if it exists.
53
54
  #
54
55
  # @param [Watir::Browser or Selenium::WebDriver::Driver] the platform browser to use
55
56
  # @param [bool] open the page if page_url is set
56
57
  #
57
58
  def initialize(browser, visit=false)
59
+ initialize_accessors if respond_to?(:initialize_accessors)
58
60
  initialize_browser(browser)
59
61
  goto if visit && respond_to?(:goto)
60
62
  initialize_page if respond_to?(:initialize_page)
@@ -164,6 +164,7 @@ module PageObject
164
164
  # @param [Hash] identifier how we find a hidden field. You can use a multiple paramaters
165
165
  # by combining of any of the following except xpath. The valid keys are:
166
166
  # * :class => Watir and Selenium
167
+ # * :css => Selenium only
167
168
  # * :id => Watir and Selenium
168
169
  # * :index => Watir and Selenium
169
170
  # * :name => Watir and Selenium
@@ -203,6 +204,7 @@ module PageObject
203
204
  # @param [Hash] identifier how we find a text area. You can use a multiple paramaters
204
205
  # by combining of any of the following except xpath. The valid keys are:
205
206
  # * :class => Watir and Selenium
207
+ # * :css => Selenium only
206
208
  # * :id => Watir and Selenium
207
209
  # * :index => Watir and Selenium
208
210
  # * :name => Watir and Selenium
@@ -331,6 +333,7 @@ module PageObject
331
333
  # @param [Hash] identifier how we find a checkbox. You can use a multiple paramaters
332
334
  # by combining of any of the following except xpath. The valid keys are:
333
335
  # * :class => Watir and Selenium
336
+ # * :css => Selenium only
334
337
  # * :id => Watir and Selenium
335
338
  # * :index => Watir and Selenium
336
339
  # * :name => Watir and Selenium
@@ -378,6 +381,7 @@ module PageObject
378
381
  # @param [Hash] identifier how we find a radio button. You can use a multiple paramaters
379
382
  # by combining of any of the following except xpath. The valid keys are:
380
383
  # * :class => Watir and Selenium
384
+ # * :css => Selenium only
381
385
  # * :id => Watir and Selenium
382
386
  # * :index => Watir and Selenium
383
387
  # * :name => Watir and Selenium
@@ -498,6 +502,7 @@ module PageObject
498
502
  # @param [Hash] identifier how we find a span. You can use a multiple paramaters
499
503
  # by combining of any of the following except xpath. The valid keys are:
500
504
  # * :class => Watir and Selenium
505
+ # * :css => Selenium only
501
506
  # * :id => Watir and Selenium
502
507
  # * :index => Watir and Selenium
503
508
  # * :name => Watir and Selenium
@@ -535,6 +540,7 @@ module PageObject
535
540
  # @param [Hash] identifier how we find a table. You can use a multiple paramaters
536
541
  # by combining of any of the following except xpath. The valid keys are:
537
542
  # * :class => Watir and Selenium
543
+ # * :css => Selenium only
538
544
  # * :id => Watir and Selenium
539
545
  # * :index => Watir and Selenium
540
546
  # * :name => Watir and Selenium
@@ -566,6 +572,7 @@ module PageObject
566
572
  # @param [Hash] identifier how we find a cell. You can use a multiple paramaters
567
573
  # by combining of any of the following except xpath. The valid keys are:
568
574
  # * :class => Watir and Selenium
575
+ # * :css => Selenium only
569
576
  # * :id => Watir and Selenium
570
577
  # * :index => Watir and Selenium
571
578
  # * :name => Watir and Selenium
@@ -603,6 +610,7 @@ module PageObject
603
610
  # by combining of any of the following except xpath. The valid keys are:
604
611
  # * :alt => Watir and Selenium
605
612
  # * :class => Watir and Selenium
613
+ # * :css => Selenium only
606
614
  # * :id => Watir and Selenium
607
615
  # * :index => Watir and Selenium
608
616
  # * :name => Watir and Selenium
@@ -636,6 +644,7 @@ module PageObject
636
644
  # by combining of any of the following except xpath. The valid keys are:
637
645
  # * :action => Watir and Selenium
638
646
  # * :class => Watir and Selenium
647
+ # * :css => Selenium only
639
648
  # * :id => Watir and Selenium
640
649
  # * :index => Watir and Selenium
641
650
  # * :xpath => Watir and Selenium
@@ -666,6 +675,7 @@ module PageObject
666
675
  # @param [Hash] identifier how we find a list item. You can use a multiple paramaters
667
676
  # by combining of any of the following except xpath. The valid keys are:
668
677
  # * :class => Watir and Selenium
678
+ # * :css => Selenium only
669
679
  # * :id => Watir and Selenium
670
680
  # * :index => Watir and Selenium
671
681
  # * :name => Watir and Selenium
@@ -702,6 +712,7 @@ module PageObject
702
712
  # @param [Hash] identifier how we find an unordered list. You can use a multiple paramaters
703
713
  # by combining of any of the following except xpath. The valid keys are:
704
714
  # * :class => Watir and Selenium
715
+ # * :css => Selenium only
705
716
  # * :id => Watir and Selenium
706
717
  # * :index => Watir and Selenium
707
718
  # * :name => Watir and Selenium
@@ -733,6 +744,7 @@ module PageObject
733
744
  # @param [Hash] identifier how we find an ordered list. You can use a multiple paramaters
734
745
  # by combining of any of the following except xpath. The valid keys are:
735
746
  # * :class => Watir and Selenium
747
+ # * :css => Selenium only
736
748
  # * :id => Watir and Selenium
737
749
  # * :index => Watir and Selenium
738
750
  # * :name => Watir and Selenium
@@ -764,6 +776,7 @@ module PageObject
764
776
  # @param [Hash] identifier how we find a H1. You can use a multiple paramaters
765
777
  # by combining of any of the following except xpath. The valid keys are:
766
778
  # * :class => Watir and Selenium
779
+ # * :css => Selenium only
767
780
  # * :id => Watir and Selenium
768
781
  # * :index => Watir and Selenium
769
782
  # * :name => Watir and Selenium
@@ -798,6 +811,7 @@ module PageObject
798
811
  # @param [Hash] identifier how we find a H2. You can use a multiple paramaters
799
812
  # by combining of any of the following except xpath. The valid keys are:
800
813
  # * :class => Watir and Selenium
814
+ # * :css => Selenium only
801
815
  # * :id => Watir and Selenium
802
816
  # * :index => Watir and Selenium
803
817
  # * :name => Watir and Selenium
@@ -832,6 +846,7 @@ module PageObject
832
846
  # @param [Hash] identifier how we find a H3. You can use a multiple paramaters
833
847
  # by combining of any of the following except xpath. The valid keys are:
834
848
  # * :class => Watir and Selenium
849
+ # * :css => Selenium only
835
850
  # * :id => Watir and Selenium
836
851
  # * :index => Watir and Selenium
837
852
  # * :name => Watir and Selenium
@@ -866,6 +881,7 @@ module PageObject
866
881
  # @param [Hash] identifier how we find a H4. You can use a multiple paramaters
867
882
  # by combining of any of the following except xpath. The valid keys are:
868
883
  # * :class => Watir and Selenium
884
+ # * :css => Selenium only
869
885
  # * :id => Watir and Selenium
870
886
  # * :index => Watir and Selenium
871
887
  # * :name => Watir and Selenium
@@ -900,6 +916,7 @@ module PageObject
900
916
  # @param [Hash] identifier how we find a H5. You can use a multiple paramaters
901
917
  # by combining of any of the following except xpath. The valid keys are:
902
918
  # * :class => Watir and Selenium
919
+ # * :css => Selenium only
903
920
  # * :id => Watir and Selenium
904
921
  # * :index => Watir and Selenium
905
922
  # * :name => Watir and Selenium
@@ -934,6 +951,7 @@ module PageObject
934
951
  # @param [Hash] identifier how we find a H6. You can use a multiple paramaters
935
952
  # by combining of any of the following except xpath. The valid keys are:
936
953
  # * :class => Watir and Selenium
954
+ # * :css => Selenium only
937
955
  # * :id => Watir and Selenium
938
956
  # * :index => Watir and Selenium
939
957
  # * :name => Watir and Selenium
@@ -968,6 +986,7 @@ module PageObject
968
986
  # @param [Hash] identifier how we find a paragraph. You can use a multiple paramaters
969
987
  # by combining of any of the following except xpath. The valid keys are:
970
988
  # * :class => Watir and Selenium
989
+ # * :css => Selenium only
971
990
  # * :id => Watir and Selenium
972
991
  # * :index => Watir and Selenium
973
992
  # * :name => Watir and Selenium
@@ -1003,6 +1022,7 @@ module PageObject
1003
1022
  # @param [Hash] identifier how we find a file_field. You can use a multiple paramaters
1004
1023
  # by combining of any of the following except xpath. The valid keys are:
1005
1024
  # * :class => Watir and Selenium
1025
+ # * :css => Selenium only
1006
1026
  # * :id => Watir and Selenium
1007
1027
  # * :index => Watir and Selenium
1008
1028
  # * :name => Watir and Selenium
@@ -1037,6 +1057,7 @@ module PageObject
1037
1057
  # @param [Hash] identifier how we find a label. You can use a multiple paramaters
1038
1058
  # by combining of any of the following except xpath. The valid keys are:
1039
1059
  # * :class => Watir and Selenium
1060
+ # * :css => Selenium only
1040
1061
  # * :id => Watir and Selenium
1041
1062
  # * :index => Watir and Selenium
1042
1063
  # * :name => Watir and Selenium
@@ -1072,6 +1093,7 @@ module PageObject
1072
1093
  # @param [Hash] identifier how we find an area. You can use a multiple paramaters
1073
1094
  # by combining of any of the following except xpath. The valid keys are:
1074
1095
  # * :class => Watir and Selenium
1096
+ # * :css => Selenium only
1075
1097
  # * :id => Watir and Selenium
1076
1098
  # * :index => Watir and Selenium
1077
1099
  # * :name => Watir and Selenium
@@ -1106,6 +1128,7 @@ module PageObject
1106
1128
  # @param [Hash] identifier how we find a canvas. You can use a multiple paramaters
1107
1129
  # by combining of any of the following except xpath. The valid keys are:
1108
1130
  # * :class => Watir and Selenium
1131
+ # * :css => Selenium only
1109
1132
  # * :id => Watir and Selenium
1110
1133
  # * :index => Watir and Selenium
1111
1134
  # * :name => Watir and Selenium
@@ -1135,6 +1158,7 @@ module PageObject
1135
1158
  # @param [Hash] identifier how we find an audio element. You can use a multiple paramaters
1136
1159
  # by combining of any of the following except xpath. The valid keys are:
1137
1160
  # * :class => Watir and Selenium
1161
+ # * :css => Selenium only
1138
1162
  # * :id => Watir and Selenium
1139
1163
  # * :index => Watir and Selenium
1140
1164
  # * :name => Watir and Selenium
@@ -1164,6 +1188,7 @@ module PageObject
1164
1188
  # @param [Hash] identifier how we find a video element. You can use a multiple paramaters
1165
1189
  # by combining of any of the following except xpath. The valid keys are:
1166
1190
  # * :class => Watir and Selenium
1191
+ # * :css => Selenium only
1167
1192
  # * :id => Watir and Selenium
1168
1193
  # * :index => Watir and Selenium
1169
1194
  # * :name => Watir and Selenium
@@ -1194,6 +1219,7 @@ module PageObject
1194
1219
  # @param [Hash] identifier how we find an element. You can use a multiple paramaters
1195
1220
  # by combining of any of the following except xpath. The valid keys are:
1196
1221
  # * :class => Watir and Selenium
1222
+ # * :css => Selenium only
1197
1223
  # * :id => Watir and Selenium
1198
1224
  # * :index => Watir and Selenium
1199
1225
  # * :name => Watir and Selenium
@@ -1225,6 +1251,7 @@ module PageObject
1225
1251
  # @param [Hash] identifier how we find an abbr. You can use a multiple paramaters
1226
1252
  # by combining of any of the following except xpath. The valid keys are:
1227
1253
  # * :class => Watir and Selenium
1254
+ # * :css => Selenium only
1228
1255
  # * :id => Watir and Selenium
1229
1256
  # * :index => Watir and Selenium
1230
1257
  # * :name => Watir and Selenium
@@ -1247,6 +1274,7 @@ module PageObject
1247
1274
  # @param [Hash] identifier how we find an address. You can use a multiple paramaters
1248
1275
  # by combining of any of the following except xpath. The valid keys are:
1249
1276
  # * :class => Watir and Selenium
1277
+ # * :css => Selenium only
1250
1278
  # * :id => Watir and Selenium
1251
1279
  # * :index => Watir and Selenium
1252
1280
  # * :name => Watir and Selenium
@@ -1269,6 +1297,7 @@ module PageObject
1269
1297
  # @param [Hash] identifier how we find an article. You can use a multiple paramaters
1270
1298
  # by combining of any of the following except xpath. The valid keys are:
1271
1299
  # * :class => Watir and Selenium
1300
+ # * :css => Selenium only
1272
1301
  # * :id => Watir and Selenium
1273
1302
  # * :index => Watir and Selenium
1274
1303
  # * :name => Watir and Selenium
@@ -1291,6 +1320,7 @@ module PageObject
1291
1320
  # @param [Hash] identifier how we find an aside. You can use a multiple paramaters
1292
1321
  # by combining of any of the following except xpath. The valid keys are:
1293
1322
  # * :class => Watir and Selenium
1323
+ # * :css => Selenium only
1294
1324
  # * :id => Watir and Selenium
1295
1325
  # * :index => Watir and Selenium
1296
1326
  # * :name => Watir and Selenium
@@ -1313,6 +1343,7 @@ module PageObject
1313
1343
  # @param [Hash] identifier how we find an bdi. You can use a multiple paramaters
1314
1344
  # by combining of any of the following except xpath. The valid keys are:
1315
1345
  # * :class => Watir and Selenium
1346
+ # * :css => Selenium only
1316
1347
  # * :id => Watir and Selenium
1317
1348
  # * :index => Watir and Selenium
1318
1349
  # * :name => Watir and Selenium
@@ -1335,6 +1366,7 @@ module PageObject
1335
1366
  # @param [Hash] identifier how we find an bdo. You can use a multiple paramaters
1336
1367
  # by combining of any of the following except xpath. The valid keys are:
1337
1368
  # * :class => Watir and Selenium
1369
+ # * :css => Selenium only
1338
1370
  # * :id => Watir and Selenium
1339
1371
  # * :index => Watir and Selenium
1340
1372
  # * :name => Watir and Selenium
@@ -1357,6 +1389,7 @@ module PageObject
1357
1389
  # @param [Hash] identifier how we find an cite. You can use a multiple paramaters
1358
1390
  # by combining of any of the following except xpath. The valid keys are:
1359
1391
  # * :class => Watir and Selenium
1392
+ # * :css => Selenium only
1360
1393
  # * :id => Watir and Selenium
1361
1394
  # * :index => Watir and Selenium
1362
1395
  # * :name => Watir and Selenium
@@ -1379,6 +1412,7 @@ module PageObject
1379
1412
  # @param [Hash] identifier how we find an code. You can use a multiple paramaters
1380
1413
  # by combining of any of the following except xpath. The valid keys are:
1381
1414
  # * :class => Watir and Selenium
1415
+ # * :css => Selenium only
1382
1416
  # * :id => Watir and Selenium
1383
1417
  # * :index => Watir and Selenium
1384
1418
  # * :name => Watir and Selenium
@@ -1401,6 +1435,7 @@ module PageObject
1401
1435
  # @param [Hash] identifier how we find an dd. You can use a multiple paramaters
1402
1436
  # by combining of any of the following except xpath. The valid keys are:
1403
1437
  # * :class => Watir and Selenium
1438
+ # * :css => Selenium only
1404
1439
  # * :id => Watir and Selenium
1405
1440
  # * :index => Watir and Selenium
1406
1441
  # * :name => Watir and Selenium
@@ -1423,6 +1458,7 @@ module PageObject
1423
1458
  # @param [Hash] identifier how we find an dfn. You can use a multiple paramaters
1424
1459
  # by combining of any of the following except xpath. The valid keys are:
1425
1460
  # * :class => Watir and Selenium
1461
+ # * :css => Selenium only
1426
1462
  # * :id => Watir and Selenium
1427
1463
  # * :index => Watir and Selenium
1428
1464
  # * :name => Watir and Selenium
@@ -1445,6 +1481,7 @@ module PageObject
1445
1481
  # @param [Hash] identifier how we find an dt. You can use a multiple paramaters
1446
1482
  # by combining of any of the following except xpath. The valid keys are:
1447
1483
  # * :class => Watir and Selenium
1484
+ # * :css => Selenium only
1448
1485
  # * :id => Watir and Selenium
1449
1486
  # * :index => Watir and Selenium
1450
1487
  # * :name => Watir and Selenium
@@ -1467,6 +1504,7 @@ module PageObject
1467
1504
  # @param [Hash] identifier how we find an em. You can use a multiple paramaters
1468
1505
  # by combining of any of the following except xpath. The valid keys are:
1469
1506
  # * :class => Watir and Selenium
1507
+ # * :css => Selenium only
1470
1508
  # * :id => Watir and Selenium
1471
1509
  # * :index => Watir and Selenium
1472
1510
  # * :name => Watir and Selenium
@@ -1489,6 +1527,7 @@ module PageObject
1489
1527
  # @param [Hash] identifier how we find an figcaption. You can use a multiple paramaters
1490
1528
  # by combining of any of the following except xpath. The valid keys are:
1491
1529
  # * :class => Watir and Selenium
1530
+ # * :css => Selenium only
1492
1531
  # * :id => Watir and Selenium
1493
1532
  # * :index => Watir and Selenium
1494
1533
  # * :name => Watir and Selenium
@@ -1511,6 +1550,7 @@ module PageObject
1511
1550
  # @param [Hash] identifier how we find an figure. You can use a multiple paramaters
1512
1551
  # by combining of any of the following except xpath. The valid keys are:
1513
1552
  # * :class => Watir and Selenium
1553
+ # * :css => Selenium only
1514
1554
  # * :id => Watir and Selenium
1515
1555
  # * :index => Watir and Selenium
1516
1556
  # * :name => Watir and Selenium
@@ -1533,6 +1573,7 @@ module PageObject
1533
1573
  # @param [Hash] identifier how we find an footer. You can use a multiple paramaters
1534
1574
  # by combining of any of the following except xpath. The valid keys are:
1535
1575
  # * :class => Watir and Selenium
1576
+ # * :css => Selenium only
1536
1577
  # * :id => Watir and Selenium
1537
1578
  # * :index => Watir and Selenium
1538
1579
  # * :name => Watir and Selenium
@@ -1555,6 +1596,7 @@ module PageObject
1555
1596
  # @param [Hash] identifier how we find an header. You can use a multiple paramaters
1556
1597
  # by combining of any of the following except xpath. The valid keys are:
1557
1598
  # * :class => Watir and Selenium
1599
+ # * :css => Selenium only
1558
1600
  # * :id => Watir and Selenium
1559
1601
  # * :index => Watir and Selenium
1560
1602
  # * :name => Watir and Selenium
@@ -1577,6 +1619,7 @@ module PageObject
1577
1619
  # @param [Hash] identifier how we find an hgroup. You can use a multiple paramaters
1578
1620
  # by combining of any of the following except xpath. The valid keys are:
1579
1621
  # * :class => Watir and Selenium
1622
+ # * :css => Selenium only
1580
1623
  # * :id => Watir and Selenium
1581
1624
  # * :index => Watir and Selenium
1582
1625
  # * :name => Watir and Selenium
@@ -1599,6 +1642,7 @@ module PageObject
1599
1642
  # @param [Hash] identifier how we find an kbd. You can use a multiple paramaters
1600
1643
  # by combining of any of the following except xpath. The valid keys are:
1601
1644
  # * :class => Watir and Selenium
1645
+ # * :css => Selenium only
1602
1646
  # * :id => Watir and Selenium
1603
1647
  # * :index => Watir and Selenium
1604
1648
  # * :name => Watir and Selenium
@@ -1621,6 +1665,7 @@ module PageObject
1621
1665
  # @param [Hash] identifier how we find an mark. You can use a multiple paramaters
1622
1666
  # by combining of any of the following except xpath. The valid keys are:
1623
1667
  # * :class => Watir and Selenium
1668
+ # * :css => Selenium only
1624
1669
  # * :id => Watir and Selenium
1625
1670
  # * :index => Watir and Selenium
1626
1671
  # * :name => Watir and Selenium
@@ -1643,6 +1688,7 @@ module PageObject
1643
1688
  # @param [Hash] identifier how we find an nav. You can use a multiple paramaters
1644
1689
  # by combining of any of the following except xpath. The valid keys are:
1645
1690
  # * :class => Watir and Selenium
1691
+ # * :css => Selenium only
1646
1692
  # * :id => Watir and Selenium
1647
1693
  # * :index => Watir and Selenium
1648
1694
  # * :name => Watir and Selenium
@@ -1665,6 +1711,7 @@ module PageObject
1665
1711
  # @param [Hash] identifier how we find an noscript. You can use a multiple paramaters
1666
1712
  # by combining of any of the following except xpath. The valid keys are:
1667
1713
  # * :class => Watir and Selenium
1714
+ # * :css => Selenium only
1668
1715
  # * :id => Watir and Selenium
1669
1716
  # * :index => Watir and Selenium
1670
1717
  # * :name => Watir and Selenium
@@ -1687,6 +1734,7 @@ module PageObject
1687
1734
  # @param [Hash] identifier how we find an rp. You can use a multiple paramaters
1688
1735
  # by combining of any of the following except xpath. The valid keys are:
1689
1736
  # * :class => Watir and Selenium
1737
+ # * :css => Selenium only
1690
1738
  # * :id => Watir and Selenium
1691
1739
  # * :index => Watir and Selenium
1692
1740
  # * :name => Watir and Selenium
@@ -1709,6 +1757,7 @@ module PageObject
1709
1757
  # @param [Hash] identifier how we find an rt. You can use a multiple paramaters
1710
1758
  # by combining of any of the following except xpath. The valid keys are:
1711
1759
  # * :class => Watir and Selenium
1760
+ # * :css => Selenium only
1712
1761
  # * :id => Watir and Selenium
1713
1762
  # * :index => Watir and Selenium
1714
1763
  # * :name => Watir and Selenium
@@ -1731,6 +1780,7 @@ module PageObject
1731
1780
  # @param [Hash] identifier how we find an ruby. You can use a multiple paramaters
1732
1781
  # by combining of any of the following except xpath. The valid keys are:
1733
1782
  # * :class => Watir and Selenium
1783
+ # * :css => Selenium only
1734
1784
  # * :id => Watir and Selenium
1735
1785
  # * :index => Watir and Selenium
1736
1786
  # * :name => Watir and Selenium
@@ -1753,6 +1803,7 @@ module PageObject
1753
1803
  # @param [Hash] identifier how we find an samp. You can use a multiple paramaters
1754
1804
  # by combining of any of the following except xpath. The valid keys are:
1755
1805
  # * :class => Watir and Selenium
1806
+ # * :css => Selenium only
1756
1807
  # * :id => Watir and Selenium
1757
1808
  # * :index => Watir and Selenium
1758
1809
  # * :name => Watir and Selenium
@@ -1775,6 +1826,7 @@ module PageObject
1775
1826
  # @param [Hash] identifier how we find an section. You can use a multiple paramaters
1776
1827
  # by combining of any of the following except xpath. The valid keys are:
1777
1828
  # * :class => Watir and Selenium
1829
+ # * :css => Selenium only
1778
1830
  # * :id => Watir and Selenium
1779
1831
  # * :index => Watir and Selenium
1780
1832
  # * :name => Watir and Selenium
@@ -1797,6 +1849,7 @@ module PageObject
1797
1849
  # @param [Hash] identifier how we find an sub. You can use a multiple paramaters
1798
1850
  # by combining of any of the following except xpath. The valid keys are:
1799
1851
  # * :class => Watir and Selenium
1852
+ # * :css => Selenium only
1800
1853
  # * :id => Watir and Selenium
1801
1854
  # * :index => Watir and Selenium
1802
1855
  # * :name => Watir and Selenium
@@ -1819,6 +1872,7 @@ module PageObject
1819
1872
  # @param [Hash] identifier how we find an summary. You can use a multiple paramaters
1820
1873
  # by combining of any of the following except xpath. The valid keys are:
1821
1874
  # * :class => Watir and Selenium
1875
+ # * :css => Selenium only
1822
1876
  # * :id => Watir and Selenium
1823
1877
  # * :index => Watir and Selenium
1824
1878
  # * :name => Watir and Selenium
@@ -1841,6 +1895,7 @@ module PageObject
1841
1895
  # @param [Hash] identifier how we find an sup. You can use a multiple paramaters
1842
1896
  # by combining of any of the following except xpath. The valid keys are:
1843
1897
  # * :class => Watir and Selenium
1898
+ # * :css => Selenium only
1844
1899
  # * :id => Watir and Selenium
1845
1900
  # * :index => Watir and Selenium
1846
1901
  # * :name => Watir and Selenium
@@ -1863,6 +1918,7 @@ module PageObject
1863
1918
  # @param [Hash] identifier how we find an var. You can use a multiple paramaters
1864
1919
  # by combining of any of the following except xpath. The valid keys are:
1865
1920
  # * :class => Watir and Selenium
1921
+ # * :css => Selenium only
1866
1922
  # * :id => Watir and Selenium
1867
1923
  # * :index => Watir and Selenium
1868
1924
  # * :name => Watir and Selenium
@@ -1885,6 +1941,7 @@ module PageObject
1885
1941
  # @param [Hash] identifier how we find an wbr. You can use a multiple paramaters
1886
1942
  # by combining of any of the following except xpath. The valid keys are:
1887
1943
  # * :class => Watir and Selenium
1944
+ # * :css => Selenium only
1888
1945
  # * :id => Watir and Selenium
1889
1946
  # * :index => Watir and Selenium
1890
1947
  # * :name => Watir and Selenium