page-object 0.5.5 → 0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|