page-object 0.5.5 → 0.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.
- data/ChangeLog +9 -0
- data/Gemfile +4 -0
- data/Guardfile +21 -0
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/cucumber.yml +1 -2
- data/features/html/multi_elements.html +136 -0
- data/features/multi_elements.feature +175 -0
- data/features/step_definitions/multi_elements_steps.rb +297 -0
- data/features/support/url_helper.rb +4 -0
- data/lib/page-object/accessors.rb +1 -1
- data/lib/page-object/element_locators.rb +382 -1
- data/lib/page-object/nested_elements.rb +96 -0
- data/lib/page-object/page_factory.rb +89 -1
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +299 -250
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +247 -198
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +1 -1
- data/spec/page-object/element_locators_spec.rb +590 -143
- data/spec/page-object/page_factory_spec.rb +65 -8
- metadata +20 -13
@@ -170,10 +170,7 @@ module PageObject
|
|
170
170
|
# See PageObject::Accessors#text_field
|
171
171
|
#
|
172
172
|
def text_field_value_for(identifier)
|
173
|
-
|
174
|
-
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).value"
|
175
|
-
switch_to_default_content(frame_identifiers)
|
176
|
-
value
|
173
|
+
process_watir_call("text_field(identifier).value", Elements::TextField, identifier)
|
177
174
|
end
|
178
175
|
|
179
176
|
#
|
@@ -181,9 +178,7 @@ module PageObject
|
|
181
178
|
# See PageObject::Accessors#text_field
|
182
179
|
#
|
183
180
|
def text_field_value_set(identifier, value)
|
184
|
-
identifier,
|
185
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).set(value)"
|
186
|
-
switch_to_default_content(frame_identifiers)
|
181
|
+
process_watir_call("text_field(identifier).set(value)", Elements::TextField, identifier, value)
|
187
182
|
end
|
188
183
|
|
189
184
|
#
|
@@ -191,10 +186,14 @@ module PageObject
|
|
191
186
|
# See PageObject::Accessors#text_field
|
192
187
|
#
|
193
188
|
def text_field_for(identifier)
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
189
|
+
find_watir_element("text_field(identifier)", Elements::TextField, identifier)
|
190
|
+
end
|
191
|
+
|
192
|
+
#
|
193
|
+
# platform method to retrieve an array of text field elements
|
194
|
+
#
|
195
|
+
def text_fields_for(identifier)
|
196
|
+
find_watir_elements("text_fields(identifier)", Elements::TextField, identifier)
|
198
197
|
end
|
199
198
|
|
200
199
|
#
|
@@ -202,10 +201,7 @@ module PageObject
|
|
202
201
|
# See PageObject::Accessors#hidden_field
|
203
202
|
#
|
204
203
|
def hidden_field_value_for(identifier)
|
205
|
-
|
206
|
-
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier).value"
|
207
|
-
switch_to_default_content(frame_identifiers)
|
208
|
-
value
|
204
|
+
process_watir_call("hidden(identifier).value", Elements::HiddenField, identifier)
|
209
205
|
end
|
210
206
|
|
211
207
|
#
|
@@ -213,10 +209,14 @@ module PageObject
|
|
213
209
|
# See PageObject::Accessors#hidden_field
|
214
210
|
#
|
215
211
|
def hidden_field_for(identifier)
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
212
|
+
find_watir_element("hidden(identifier)", Elements::HiddenField, identifier)
|
213
|
+
end
|
214
|
+
|
215
|
+
#
|
216
|
+
# platform method to retrieve an array of hidden field elements
|
217
|
+
#
|
218
|
+
def hidden_fields_for(identifier)
|
219
|
+
find_watir_elements("hiddens(identifier)", Elements::HiddenField, identifier)
|
220
220
|
end
|
221
221
|
|
222
222
|
#
|
@@ -224,9 +224,8 @@ module PageObject
|
|
224
224
|
# See PageObject::Accessors#text_area
|
225
225
|
#
|
226
226
|
def text_area_value_set(identifier, value)
|
227
|
-
identifier
|
228
|
-
|
229
|
-
switch_to_default_content(frame_identifiers)
|
227
|
+
process_watir_call("textarea(identifier).send_keys(value)", Elements::TextArea,
|
228
|
+
identifier, value)
|
230
229
|
end
|
231
230
|
|
232
231
|
#
|
@@ -234,10 +233,7 @@ module PageObject
|
|
234
233
|
# See PageObject::Accessors#text_area
|
235
234
|
#
|
236
235
|
def text_area_value_for(identifier)
|
237
|
-
|
238
|
-
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).value"
|
239
|
-
switch_to_default_content(frame_identifiers)
|
240
|
-
value
|
236
|
+
process_watir_call("textarea(identifier).value", Elements::TextArea, identifier)
|
241
237
|
end
|
242
238
|
|
243
239
|
#
|
@@ -245,10 +241,14 @@ module PageObject
|
|
245
241
|
# See PageObject::Accessors#text_area
|
246
242
|
#
|
247
243
|
def text_area_for(identifier)
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
244
|
+
find_watir_element("textarea(identifier)", Elements::TextArea, identifier)
|
245
|
+
end
|
246
|
+
|
247
|
+
#
|
248
|
+
# platform method to retrieve an array of textarea elements
|
249
|
+
#
|
250
|
+
def text_areas_for(identifier)
|
251
|
+
find_watir_elements("textareas(identifier)", Elements::TextArea, identifier)
|
252
252
|
end
|
253
253
|
|
254
254
|
#
|
@@ -256,10 +256,8 @@ module PageObject
|
|
256
256
|
# See PageObject::Accessors#select_list
|
257
257
|
#
|
258
258
|
def select_list_value_for(identifier)
|
259
|
-
|
260
|
-
|
261
|
-
switch_to_default_content(frame_identifiers)
|
262
|
-
value
|
259
|
+
process_watir_call("select_list(identifier).value", Elements::SelectList,
|
260
|
+
identifier)
|
263
261
|
end
|
264
262
|
|
265
263
|
#
|
@@ -267,9 +265,8 @@ module PageObject
|
|
267
265
|
# See PageObject::Accessors#select_list
|
268
266
|
#
|
269
267
|
def select_list_value_set(identifier, value)
|
270
|
-
identifier
|
271
|
-
|
272
|
-
switch_to_default_content(frame_identifiers)
|
268
|
+
process_watir_call("select_list(identifier).select(value)", Elements::SelectList,
|
269
|
+
identifier, value)
|
273
270
|
end
|
274
271
|
|
275
272
|
#
|
@@ -277,10 +274,14 @@ module PageObject
|
|
277
274
|
# See PageObject::Accessors#select_list
|
278
275
|
#
|
279
276
|
def select_list_for(identifier)
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
277
|
+
find_watir_element("select_list(identifier)", Elements::SelectList, identifier)
|
278
|
+
end
|
279
|
+
|
280
|
+
#
|
281
|
+
# platform method to retrieve an array of select_list elements
|
282
|
+
#
|
283
|
+
def select_lists_for(identifier)
|
284
|
+
find_watir_elements("select_lists(identifier)", Elements::SelectList, identifier)
|
284
285
|
end
|
285
286
|
|
286
287
|
#
|
@@ -288,9 +289,8 @@ module PageObject
|
|
288
289
|
# See PageObject::Accessors#link
|
289
290
|
#
|
290
291
|
def click_link_for(identifier)
|
291
|
-
identifier
|
292
|
-
|
293
|
-
switch_to_default_content(frame_identifiers)
|
292
|
+
process_watir_call("link(identifier).click if identifier", Elements::Link,
|
293
|
+
identifier)
|
294
294
|
end
|
295
295
|
|
296
296
|
#
|
@@ -298,10 +298,14 @@ module PageObject
|
|
298
298
|
# see PageObject::Accessors#link
|
299
299
|
#
|
300
300
|
def link_for(identifier)
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
301
|
+
find_watir_element("link(identifier)", Elements::Link, identifier)
|
302
|
+
end
|
303
|
+
|
304
|
+
#
|
305
|
+
# platform method to retrieve an array of link elements
|
306
|
+
#
|
307
|
+
def links_for(identifier)
|
308
|
+
find_watir_elements("links(identifier)", Elements::Link, identifier)
|
305
309
|
end
|
306
310
|
|
307
311
|
#
|
@@ -309,9 +313,7 @@ module PageObject
|
|
309
313
|
# See PageObject::Accessors#checkbox
|
310
314
|
#
|
311
315
|
def check_checkbox(identifier)
|
312
|
-
|
313
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set"
|
314
|
-
switch_to_default_content(frame_identifiers)
|
316
|
+
process_watir_call("checkbox(identifier).set", Elements::CheckBox, identifier)
|
315
317
|
end
|
316
318
|
|
317
319
|
#
|
@@ -319,9 +321,7 @@ module PageObject
|
|
319
321
|
# See PageObject::Accessors#checkbox
|
320
322
|
#
|
321
323
|
def uncheck_checkbox(identifier)
|
322
|
-
|
323
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).clear"
|
324
|
-
switch_to_default_content(frame_identifiers)
|
324
|
+
process_watir_call("checkbox(identifier).clear", Elements::CheckBox, identifier)
|
325
325
|
end
|
326
326
|
|
327
327
|
#
|
@@ -329,10 +329,7 @@ module PageObject
|
|
329
329
|
# See PageObject::Accessors#checkbox
|
330
330
|
#
|
331
331
|
def checkbox_checked?(identifier)
|
332
|
-
|
333
|
-
result = @browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set?"
|
334
|
-
switch_to_default_content(frame_identifiers)
|
335
|
-
result
|
332
|
+
process_watir_call("checkbox(identifier).set?", Elements::CheckBox, identifier)
|
336
333
|
end
|
337
334
|
|
338
335
|
#
|
@@ -340,10 +337,14 @@ module PageObject
|
|
340
337
|
# See PageObject::Accessors#checkbox
|
341
338
|
#
|
342
339
|
def checkbox_for(identifier)
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
340
|
+
find_watir_element("checkbox(identifier)", Elements::CheckBox, identifier)
|
341
|
+
end
|
342
|
+
|
343
|
+
#
|
344
|
+
# platform method to retrieve an array of checkbox elements
|
345
|
+
#
|
346
|
+
def checkboxes_for(identifier)
|
347
|
+
find_watir_elements("checkboxes(identifier)", Elements::CheckBox, identifier)
|
347
348
|
end
|
348
349
|
|
349
350
|
#
|
@@ -351,9 +352,7 @@ module PageObject
|
|
351
352
|
# See PageObject::Accessors#radio_button
|
352
353
|
#
|
353
354
|
def select_radio(identifier)
|
354
|
-
|
355
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set"
|
356
|
-
switch_to_default_content(frame_identifiers)
|
355
|
+
process_watir_call("radio(identifier).set", Elements::RadioButton, identifier)
|
357
356
|
end
|
358
357
|
|
359
358
|
#
|
@@ -361,9 +360,7 @@ module PageObject
|
|
361
360
|
# See PageObject::Accessors#radio_button
|
362
361
|
#
|
363
362
|
def clear_radio(identifier)
|
364
|
-
|
365
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).clear"
|
366
|
-
switch_to_default_content(frame_identifiers)
|
363
|
+
process_watir_call("radio(identifier).clear", Elements::RadioButton, identifier)
|
367
364
|
end
|
368
365
|
|
369
366
|
#
|
@@ -371,10 +368,7 @@ module PageObject
|
|
371
368
|
# See PageObject::Accessors#radio_button
|
372
369
|
#
|
373
370
|
def radio_selected?(identifier)
|
374
|
-
|
375
|
-
result = @browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set?"
|
376
|
-
switch_to_default_content(frame_identifiers)
|
377
|
-
result
|
371
|
+
process_watir_call("radio(identifier).set?", Elements::RadioButton, identifier)
|
378
372
|
end
|
379
373
|
|
380
374
|
#
|
@@ -382,10 +376,14 @@ module PageObject
|
|
382
376
|
# See PageObject::Accessors#radio_button
|
383
377
|
#
|
384
378
|
def radio_button_for(identifier)
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
379
|
+
find_watir_element("radio(identifier)", Elements::RadioButton, identifier)
|
380
|
+
end
|
381
|
+
|
382
|
+
#
|
383
|
+
# platform method to retrieve an array of radio button elements
|
384
|
+
#
|
385
|
+
def radio_buttons_for(identifier)
|
386
|
+
find_watir_elements("radios(identifier)", Elements::RadioButton, identifier)
|
389
387
|
end
|
390
388
|
|
391
389
|
#
|
@@ -393,10 +391,7 @@ module PageObject
|
|
393
391
|
# See PageObject::Accessors#div
|
394
392
|
#
|
395
393
|
def div_text_for(identifier)
|
396
|
-
|
397
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier).text"
|
398
|
-
switch_to_default_content(frame_identifiers)
|
399
|
-
text
|
394
|
+
process_watir_call("div(identifier).text", Elements::Div, identifier, nil, 'div')
|
400
395
|
end
|
401
396
|
|
402
397
|
#
|
@@ -404,10 +399,14 @@ module PageObject
|
|
404
399
|
# See PageObject::Accessors#div
|
405
400
|
#
|
406
401
|
def div_for(identifier)
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
402
|
+
find_watir_element("div(identifier)", Elements::Div, identifier, 'div')
|
403
|
+
end
|
404
|
+
|
405
|
+
#
|
406
|
+
# platform method to retrieve an array of div elements
|
407
|
+
#
|
408
|
+
def divs_for(identifier)
|
409
|
+
find_watir_elements("divs(identifier)", Elements::Div, identifier, 'div')
|
411
410
|
end
|
412
411
|
|
413
412
|
#
|
@@ -415,10 +414,7 @@ module PageObject
|
|
415
414
|
# See PageObject::Accessors#span
|
416
415
|
#
|
417
416
|
def span_text_for(identifier)
|
418
|
-
|
419
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier).text"
|
420
|
-
switch_to_default_content(frame_identifiers)
|
421
|
-
text
|
417
|
+
process_watir_call("span(identifier).text", Elements::Span, identifier, nil, 'span')
|
422
418
|
end
|
423
419
|
|
424
420
|
#
|
@@ -426,10 +422,14 @@ module PageObject
|
|
426
422
|
# See PageObject::Accessors#span
|
427
423
|
#
|
428
424
|
def span_for(identifier)
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
425
|
+
find_watir_element("span(identifier)", Elements::Span, identifier, 'span')
|
426
|
+
end
|
427
|
+
|
428
|
+
#
|
429
|
+
# platform method to retrieve an array of span elements
|
430
|
+
#
|
431
|
+
def spans_for(identifier)
|
432
|
+
find_watir_elements("spans(identifier)", Elements::Span, identifier, 'span')
|
433
433
|
end
|
434
434
|
|
435
435
|
#
|
@@ -437,9 +437,7 @@ module PageObject
|
|
437
437
|
# See PageObject::Accessors#button
|
438
438
|
#
|
439
439
|
def click_button_for(identifier)
|
440
|
-
|
441
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier).click"
|
442
|
-
switch_to_default_content(frame_identifiers)
|
440
|
+
process_watir_call("button(identifier).click", Elements::Button, identifier)
|
443
441
|
end
|
444
442
|
|
445
443
|
#
|
@@ -447,10 +445,14 @@ module PageObject
|
|
447
445
|
# See PageObject::Accessors#button
|
448
446
|
#
|
449
447
|
def button_for(identifier)
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
448
|
+
find_watir_element("button(identifier)", Elements::Button, identifier)
|
449
|
+
end
|
450
|
+
|
451
|
+
#
|
452
|
+
# platform method to retrieve an array of button elements
|
453
|
+
#
|
454
|
+
def buttons_for(identifier)
|
455
|
+
find_watir_elements("buttons(identifier)", Elements::Button, identifier)
|
454
456
|
end
|
455
457
|
|
456
458
|
#
|
@@ -458,10 +460,14 @@ module PageObject
|
|
458
460
|
# See PageObject::Accessors#table
|
459
461
|
#
|
460
462
|
def table_for(identifier)
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
463
|
+
find_watir_element("table(identifier)", Elements::Table, identifier, 'table')
|
464
|
+
end
|
465
|
+
|
466
|
+
#
|
467
|
+
# platform method to retrieve an array of table elements
|
468
|
+
#
|
469
|
+
def tables_for(identifier)
|
470
|
+
find_watir_elements("tables(identifier)", Elements::Table, identifier, 'table')
|
465
471
|
end
|
466
472
|
|
467
473
|
#
|
@@ -469,10 +475,8 @@ module PageObject
|
|
469
475
|
# See PageObject::Accessors#cell
|
470
476
|
#
|
471
477
|
def cell_text_for(identifier)
|
472
|
-
|
473
|
-
|
474
|
-
switch_to_default_content(frame_identifiers)
|
475
|
-
text
|
478
|
+
process_watir_call("td(identifier).text", Elements::TableCell, identifier,
|
479
|
+
nil, 'td')
|
476
480
|
end
|
477
481
|
|
478
482
|
#
|
@@ -480,10 +484,14 @@ module PageObject
|
|
480
484
|
# See PageObject::Accessors#cell
|
481
485
|
#
|
482
486
|
def cell_for(identifier)
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
+
find_watir_element("td(identifier)", Elements::TableCell, identifier, 'td')
|
488
|
+
end
|
489
|
+
|
490
|
+
#
|
491
|
+
# platform method to retrieve an array of table cell elements
|
492
|
+
#
|
493
|
+
def cells_for(identifier)
|
494
|
+
find_watir_elements("tds(identifier)", Elements::TableCell, identifier, 'td')
|
487
495
|
end
|
488
496
|
|
489
497
|
#
|
@@ -491,10 +499,14 @@ module PageObject
|
|
491
499
|
# See PageObject::Accessors#image
|
492
500
|
#
|
493
501
|
def image_for(identifier)
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
502
|
+
find_watir_element("image(identifier)", Elements::Image, identifier)
|
503
|
+
end
|
504
|
+
|
505
|
+
#
|
506
|
+
# platform method to retrieve an array of image elements
|
507
|
+
#
|
508
|
+
def images_for(identifier)
|
509
|
+
find_watir_elements("images(identifier)", Elements::Image, identifier)
|
498
510
|
end
|
499
511
|
|
500
512
|
#
|
@@ -502,10 +514,14 @@ module PageObject
|
|
502
514
|
# See PageObject::Accessors#form
|
503
515
|
#
|
504
516
|
def form_for(identifier)
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
517
|
+
find_watir_element("form(identifier)", Elements::Form, identifier)
|
518
|
+
end
|
519
|
+
|
520
|
+
#
|
521
|
+
# platform method to retrieve an array of forms
|
522
|
+
#
|
523
|
+
def forms_for(identifier)
|
524
|
+
find_watir_elements("forms(identifier)", Elements::Form, identifier)
|
509
525
|
end
|
510
526
|
|
511
527
|
#
|
@@ -513,10 +529,7 @@ module PageObject
|
|
513
529
|
# See PageObject::Accessors#list_item
|
514
530
|
#
|
515
531
|
def list_item_text_for(identifier)
|
516
|
-
|
517
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier).text"
|
518
|
-
switch_to_default_content(frame_identifiers)
|
519
|
-
text
|
532
|
+
process_watir_call("li(identifier).text", Elements::ListItem, identifier, nil, 'li')
|
520
533
|
end
|
521
534
|
|
522
535
|
#
|
@@ -524,10 +537,14 @@ module PageObject
|
|
524
537
|
# See PageObject::Accessors#list_item
|
525
538
|
#
|
526
539
|
def list_item_for(identifier)
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
540
|
+
find_watir_element("li(identifier)", Elements::ListItem, identifier, 'li')
|
541
|
+
end
|
542
|
+
|
543
|
+
#
|
544
|
+
# platform method to retrieve an array of list items
|
545
|
+
#
|
546
|
+
def list_items_for(identifier)
|
547
|
+
find_watir_elements("lis(identifier)", Elements::ListItem, identifier, 'li')
|
531
548
|
end
|
532
549
|
|
533
550
|
#
|
@@ -535,10 +552,14 @@ module PageObject
|
|
535
552
|
# See PageObject::Accessors#unordered_list
|
536
553
|
#
|
537
554
|
def unordered_list_for(identifier)
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
555
|
+
find_watir_element("ul(identifier)", Elements::UnorderedList, identifier, 'ul')
|
556
|
+
end
|
557
|
+
|
558
|
+
#
|
559
|
+
# platform method to retrieve an array of unordered lists
|
560
|
+
#
|
561
|
+
def unordered_lists_for(identifier)
|
562
|
+
find_watir_elements("uls(identifier)", Elements::UnorderedList, identifier, 'ul')
|
542
563
|
end
|
543
564
|
|
544
565
|
#
|
@@ -546,21 +567,22 @@ module PageObject
|
|
546
567
|
# See PageObject::Accessors#ordered_list
|
547
568
|
#
|
548
569
|
def ordered_list_for(identifier)
|
549
|
-
|
550
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ol(identifier)"
|
551
|
-
switch_to_default_content(frame_identifiers)
|
552
|
-
::PageObject::Elements::OrderedList.new(element, :platform => :watir_webdriver)
|
570
|
+
find_watir_element("ol(identifier)", Elements::OrderedList, identifier, 'ol')
|
553
571
|
end
|
554
572
|
|
573
|
+
#
|
574
|
+
# platform method to retrieve an array of ordered lists
|
575
|
+
#
|
576
|
+
def ordered_lists_for(identifier)
|
577
|
+
find_watir_elements("ols(identifier)", Elements::OrderedList, identifier, 'ol')
|
578
|
+
end
|
579
|
+
|
555
580
|
#
|
556
581
|
# platform method to retrieve the text for a h1
|
557
582
|
# See PageObject::Accessors#h1
|
558
583
|
#
|
559
584
|
def h1_text_for(identifier)
|
560
|
-
|
561
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h1(identifier).text"
|
562
|
-
switch_to_default_content(frame_identifiers)
|
563
|
-
text
|
585
|
+
process_watir_call("h1(identifier).text", Elements::Heading, identifier, nil, 'h1')
|
564
586
|
end
|
565
587
|
|
566
588
|
#
|
@@ -568,21 +590,22 @@ module PageObject
|
|
568
590
|
# See PageObject::Accessors#h1
|
569
591
|
#
|
570
592
|
def h1_for(identifier)
|
571
|
-
|
572
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h1(identifier)"
|
573
|
-
switch_to_default_content(frame_identifiers)
|
574
|
-
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
593
|
+
find_watir_element("h1(identifier)", Elements::Heading, identifier, 'h1')
|
575
594
|
end
|
576
595
|
|
596
|
+
#
|
597
|
+
# platform method to retrieve an array of h1s
|
598
|
+
#
|
599
|
+
def h1s_for(identifier)
|
600
|
+
find_watir_elements("h1s(identifier)", Elements::Heading, identifier, 'h1')
|
601
|
+
end
|
602
|
+
|
577
603
|
#
|
578
604
|
# platform method to retrieve the text for a h2
|
579
605
|
# See PageObject::Accessors#h2
|
580
606
|
#
|
581
607
|
def h2_text_for(identifier)
|
582
|
-
|
583
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h2(identifier).text"
|
584
|
-
switch_to_default_content(frame_identifiers)
|
585
|
-
text
|
608
|
+
process_watir_call("h2(identifier).text", Elements::Heading, identifier, nil, 'h2')
|
586
609
|
end
|
587
610
|
|
588
611
|
#
|
@@ -590,21 +613,22 @@ module PageObject
|
|
590
613
|
# See PageObject::Accessors#h2
|
591
614
|
#
|
592
615
|
def h2_for(identifier)
|
593
|
-
|
594
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h2(identifier)"
|
595
|
-
switch_to_default_content(frame_identifiers)
|
596
|
-
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
616
|
+
find_watir_element("h2(identifier)", Elements::Heading, identifier, 'h2')
|
597
617
|
end
|
598
618
|
|
619
|
+
#
|
620
|
+
# platform method to retrieve an array of h2s
|
621
|
+
#
|
622
|
+
def h2s_for(identifier)
|
623
|
+
find_watir_elements("h2s(identifier)", Elements::Heading, identifier, 'h2')
|
624
|
+
end
|
625
|
+
|
599
626
|
#
|
600
627
|
# platform method to retrieve the text for a h3
|
601
628
|
# See PageObject::Accessors#h3
|
602
629
|
#
|
603
630
|
def h3_text_for(identifier)
|
604
|
-
|
605
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h3(identifier).text"
|
606
|
-
switch_to_default_content(frame_identifiers)
|
607
|
-
text
|
631
|
+
process_watir_call("h3(identifier).text", Elements::Heading, identifier, nil, 'h3')
|
608
632
|
end
|
609
633
|
|
610
634
|
#
|
@@ -612,21 +636,22 @@ module PageObject
|
|
612
636
|
# See PageObject::Accessors#h3
|
613
637
|
#
|
614
638
|
def h3_for(identifier)
|
615
|
-
|
616
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h3(identifier)"
|
617
|
-
switch_to_default_content(frame_identifiers)
|
618
|
-
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
639
|
+
find_watir_element("h3(identifier)", Elements::Heading, identifier, 'h3')
|
619
640
|
end
|
620
641
|
|
642
|
+
#
|
643
|
+
# platform method to retrieve an array of h3s
|
644
|
+
#
|
645
|
+
def h3s_for(identifier)
|
646
|
+
find_watir_elements("h3s(identifier)", Elements::Heading, identifier, 'h3')
|
647
|
+
end
|
648
|
+
|
621
649
|
#
|
622
650
|
# platform method to retrieve the text for a h4
|
623
651
|
# See PageObject::Accessors#h4
|
624
652
|
#
|
625
653
|
def h4_text_for(identifier)
|
626
|
-
|
627
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h4(identifier).text"
|
628
|
-
switch_to_default_content(frame_identifiers)
|
629
|
-
text
|
654
|
+
process_watir_call("h4(identifier).text", Elements::Heading, identifier, nil, 'h4')
|
630
655
|
end
|
631
656
|
|
632
657
|
#
|
@@ -634,21 +659,22 @@ module PageObject
|
|
634
659
|
# See PageObject::Accessors#h4
|
635
660
|
#
|
636
661
|
def h4_for(identifier)
|
637
|
-
|
638
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h4(identifier)"
|
639
|
-
switch_to_default_content(frame_identifiers)
|
640
|
-
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
662
|
+
find_watir_element("h4(identifier)", Elements::Heading, identifier, 'h4')
|
641
663
|
end
|
642
664
|
|
665
|
+
#
|
666
|
+
# platform method to retrieve an array of h4s
|
667
|
+
#
|
668
|
+
def h4s_for(identifier)
|
669
|
+
find_watir_elements("h4s(identifier)", Elements::Heading, identifier, 'h4')
|
670
|
+
end
|
671
|
+
|
643
672
|
#
|
644
673
|
# platform method to retrieve the text for a h5
|
645
674
|
# See PageObject::Accessors#h5
|
646
675
|
#
|
647
676
|
def h5_text_for(identifier)
|
648
|
-
|
649
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h5(identifier).text"
|
650
|
-
switch_to_default_content(frame_identifiers)
|
651
|
-
text
|
677
|
+
process_watir_call("h5(identifier).text", Elements::Heading, identifier, nil, 'h5')
|
652
678
|
end
|
653
679
|
|
654
680
|
#
|
@@ -656,21 +682,22 @@ module PageObject
|
|
656
682
|
# See PageObject::Accessors#h5
|
657
683
|
#
|
658
684
|
def h5_for(identifier)
|
659
|
-
|
660
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h5(identifier)"
|
661
|
-
switch_to_default_content(frame_identifiers)
|
662
|
-
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
685
|
+
find_watir_element("h5(identifier)", Elements::Heading, identifier, 'h5')
|
663
686
|
end
|
664
687
|
|
688
|
+
#
|
689
|
+
# platform method to retrieve an array of h5s
|
690
|
+
#
|
691
|
+
def h5s_for(identifier)
|
692
|
+
find_watir_elements("h5s(identifier)", Elements::Heading, identifier, 'h5')
|
693
|
+
end
|
694
|
+
|
665
695
|
#
|
666
696
|
# platform method to retrieve the text for a h6
|
667
697
|
# See PageObject::Accessors#h6
|
668
698
|
#
|
669
699
|
def h6_text_for(identifier)
|
670
|
-
|
671
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h6(identifier).text"
|
672
|
-
switch_to_default_content(frame_identifiers)
|
673
|
-
text
|
700
|
+
process_watir_call("h6(identifier).text", Elements::Heading, identifier, nil, 'h6')
|
674
701
|
end
|
675
702
|
|
676
703
|
#
|
@@ -678,21 +705,22 @@ module PageObject
|
|
678
705
|
# See PageObject::Accessors#h6
|
679
706
|
#
|
680
707
|
def h6_for(identifier)
|
681
|
-
|
682
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h6(identifier)"
|
683
|
-
switch_to_default_content(frame_identifiers)
|
684
|
-
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
708
|
+
find_watir_element("h6(identifier)", Elements::Heading, identifier, 'h6')
|
685
709
|
end
|
686
710
|
|
711
|
+
#
|
712
|
+
# platform method to retrieve an array of h6s
|
713
|
+
#
|
714
|
+
def h6s_for(identifier)
|
715
|
+
find_watir_elements("h6s(identifier)", Elements::Heading, identifier, 'h6')
|
716
|
+
end
|
717
|
+
|
687
718
|
#
|
688
719
|
# platform method to retrieve the text for a paragraph
|
689
720
|
# See PageObject::Accessors#paragraph
|
690
721
|
#
|
691
722
|
def paragraph_text_for(identifier)
|
692
|
-
identifier,
|
693
|
-
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}p(identifier).text"
|
694
|
-
switch_to_default_content(frame_identifiers)
|
695
|
-
text
|
723
|
+
process_watir_call("p(identifier).text", Elements::Paragraph, identifier, nil, 'p')
|
696
724
|
end
|
697
725
|
|
698
726
|
#
|
@@ -700,10 +728,14 @@ module PageObject
|
|
700
728
|
# See PageObject::Accessors#paragraph
|
701
729
|
#
|
702
730
|
def paragraph_for(identifier)
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
731
|
+
find_watir_element("p(identifier)", Elements::Paragraph, identifier, 'p')
|
732
|
+
end
|
733
|
+
|
734
|
+
#
|
735
|
+
# platform method to retrieve an array of paragraph elements
|
736
|
+
#
|
737
|
+
def paragraphs_for(identifier)
|
738
|
+
find_watir_elements("ps(identifier)", Elements::Paragraph, identifier, 'p')
|
707
739
|
end
|
708
740
|
|
709
741
|
#
|
@@ -711,9 +743,8 @@ module PageObject
|
|
711
743
|
# See PageObject::Accessors#file_field
|
712
744
|
#
|
713
745
|
def file_field_value_set(identifier, value)
|
714
|
-
identifier
|
715
|
-
|
716
|
-
switch_to_default_content(frame_identifiers)
|
746
|
+
process_watir_call("file_field(identifier).set(value)", Elements::FileField,
|
747
|
+
identifier, value)
|
717
748
|
end
|
718
749
|
|
719
750
|
#
|
@@ -721,14 +752,32 @@ module PageObject
|
|
721
752
|
# See PageObject::Accessors#file_field
|
722
753
|
#
|
723
754
|
def file_field_for(identifier)
|
724
|
-
|
725
|
-
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}file_field(identifier)"
|
726
|
-
switch_to_default_content(frame_identifiers)
|
727
|
-
::PageObject::Elements::FileField.new(element, :platform => :watir_webdriver)
|
755
|
+
find_watir_element("file_field(identifier)", Elements::FileField, identifier)
|
728
756
|
end
|
729
757
|
|
730
758
|
private
|
731
759
|
|
760
|
+
def find_watir_elements(the_call, type, identifier, tag_name=nil)
|
761
|
+
identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
|
762
|
+
elements = @browser.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
|
763
|
+
switch_to_default_content(frame_identifiers)
|
764
|
+
elements.map { |element| type.new(element, :platform => :watir_webdriver) }
|
765
|
+
end
|
766
|
+
|
767
|
+
def find_watir_element(the_call, type, identifier, tag_name=nil)
|
768
|
+
identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
|
769
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
|
770
|
+
switch_to_default_content(frame_identifiers)
|
771
|
+
type.new(element, :platform => :watir_webdriver)
|
772
|
+
end
|
773
|
+
|
774
|
+
def process_watir_call(the_call, type, identifier, value=nil, tag_name=nil)
|
775
|
+
identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
|
776
|
+
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
|
777
|
+
switch_to_default_content(frame_identifiers)
|
778
|
+
value
|
779
|
+
end
|
780
|
+
|
732
781
|
def parse_identifiers(identifier, element, tag_name=nil)
|
733
782
|
frame_identifiers = identifier.delete(:frame)
|
734
783
|
identifier = add_tagname_if_needed identifier, tag_name if tag_name
|