page-object 0.2.2 → 0.2.3
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 +10 -0
- data/features/html/static_elements.html +1 -2
- data/features/step_definitions/accessor_steps.rb +16 -16
- data/features/step_definitions/element_steps.rb +15 -16
- data/features/support/page.rb +1 -0
- data/features/table_cell.feature +1 -0
- data/lib/page-object.rb +15 -3
- data/lib/page-object/accessors.rb +87 -52
- data/lib/page-object/elements/element.rb +11 -0
- data/lib/page-object/elements/table_cell.rb +10 -0
- data/lib/page-object/platforms/selenium/page_object.rb +44 -108
- data/lib/page-object/platforms/watir/page_object.rb +43 -83
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +1 -1
- data/spec/page-object/accessors_spec.rb +91 -68
- data/spec/page-object/elements/element_spec.rb +7 -0
- data/spec/page-object/page-object_spec.rb +26 -0
- metadata +3 -3
@@ -41,6 +41,17 @@ module PageObject
|
|
41
41
|
return how, what
|
42
42
|
end
|
43
43
|
end
|
44
|
+
|
45
|
+
# @private
|
46
|
+
# delegate calls to driver element
|
47
|
+
def method_missing(*args, &block)
|
48
|
+
m = args.shift
|
49
|
+
begin
|
50
|
+
element.send m, *args, &block
|
51
|
+
rescue Exception => e
|
52
|
+
raise
|
53
|
+
end
|
54
|
+
end
|
44
55
|
|
45
56
|
protected
|
46
57
|
|
@@ -118,9 +118,7 @@ module PageObject
|
|
118
118
|
# See PageObject::Accessors#text_field
|
119
119
|
#
|
120
120
|
def text_field_value_for(identifier)
|
121
|
-
frame_identifiers = identifier
|
122
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'text'
|
123
|
-
how, what = Elements::TextField.selenium_identifier_for identifier
|
121
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TextField, 'input', :type => 'text')
|
124
122
|
switch_to_frame(frame_identifiers)
|
125
123
|
text = @browser.find_element(how, what).attribute('value')
|
126
124
|
@browser.switch_to.default_content
|
@@ -132,9 +130,7 @@ module PageObject
|
|
132
130
|
# See PageObject::Accessors#text_field
|
133
131
|
#
|
134
132
|
def text_field_value_set(identifier, value)
|
135
|
-
frame_identifiers = identifier
|
136
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'text'
|
137
|
-
how, what = Elements::TextField.selenium_identifier_for identifier
|
133
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TextField, 'input', :type => 'text')
|
138
134
|
switch_to_frame(frame_identifiers)
|
139
135
|
@browser.find_element(how, what).clear
|
140
136
|
@browser.find_element(how, what).send_keys(value)
|
@@ -146,9 +142,7 @@ module PageObject
|
|
146
142
|
# See PageObject::Accessors#text_field
|
147
143
|
#
|
148
144
|
def text_field_for(identifier)
|
149
|
-
frame_identifiers = identifier
|
150
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'text'
|
151
|
-
how, what = Elements::TextField.selenium_identifier_for identifier
|
145
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TextField, 'input', :type => 'text')
|
152
146
|
switch_to_frame(frame_identifiers)
|
153
147
|
element = @browser.find_element(how, what)
|
154
148
|
@browser.switch_to.default_content
|
@@ -160,9 +154,7 @@ module PageObject
|
|
160
154
|
# See PageObject::Accessors#hidden_field
|
161
155
|
#
|
162
156
|
def hidden_field_value_for(identifier)
|
163
|
-
frame_identifiers = identifier
|
164
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'hidden'
|
165
|
-
how, what = Elements::HiddenField.selenium_identifier_for identifier
|
157
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::HiddenField, 'input', :type => 'hidden')
|
166
158
|
switch_to_frame(frame_identifiers)
|
167
159
|
value = @browser.find_element(how, what).attribute('value')
|
168
160
|
@browser.switch_to.default_content
|
@@ -174,9 +166,7 @@ module PageObject
|
|
174
166
|
# See PageObject::Accessors#hidden_field
|
175
167
|
#
|
176
168
|
def hidden_field_for(identifier)
|
177
|
-
frame_identifiers = identifier
|
178
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'hidden'
|
179
|
-
how, what = Elements::HiddenField.selenium_identifier_for identifier
|
169
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::HiddenField, 'input', :type => 'hidden')
|
180
170
|
switch_to_frame(frame_identifiers)
|
181
171
|
element = @browser.find_element(how, what)
|
182
172
|
@browser.switch_to.default_content
|
@@ -188,9 +178,7 @@ module PageObject
|
|
188
178
|
# See PageObject::Accessors#text_area
|
189
179
|
#
|
190
180
|
def text_area_value_set(identifier, value)
|
191
|
-
frame_identifiers = identifier
|
192
|
-
identifier = add_tagname_if_needed identifier, 'textarea'
|
193
|
-
how, what = Elements::TextArea.selenium_identifier_for identifier
|
181
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TextArea, 'textarea')
|
194
182
|
switch_to_frame(frame_identifiers)
|
195
183
|
@browser.find_element(how, what).send_keys(value)
|
196
184
|
@browser.switch_to.default_content
|
@@ -201,9 +189,7 @@ module PageObject
|
|
201
189
|
# See PageObject::Accessors#text_area
|
202
190
|
#
|
203
191
|
def text_area_value_for(identifier)
|
204
|
-
frame_identifiers = identifier
|
205
|
-
identifier = add_tagname_if_needed identifier, 'textarea'
|
206
|
-
how, what = Elements::TextArea.selenium_identifier_for identifier
|
192
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TextArea, 'textarea')
|
207
193
|
switch_to_frame(frame_identifiers)
|
208
194
|
value = @browser.find_element(how, what).attribute('value')
|
209
195
|
@browser.switch_to.default_content
|
@@ -215,9 +201,7 @@ module PageObject
|
|
215
201
|
# See PageObject::Accessors#text_area
|
216
202
|
#
|
217
203
|
def text_area_for(identifier)
|
218
|
-
frame_identifiers = identifier
|
219
|
-
identifier = add_tagname_if_needed identifier, 'textarea'
|
220
|
-
how, what = Elements::TextArea.selenium_identifier_for identifier
|
204
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TextArea, 'textarea')
|
221
205
|
switch_to_frame(frame_identifiers)
|
222
206
|
element = @browser.find_element(how, what)
|
223
207
|
@browser.switch_to.default_content
|
@@ -229,9 +213,7 @@ module PageObject
|
|
229
213
|
# See PageObject::Accessors#select_list
|
230
214
|
#
|
231
215
|
def select_list_value_for(identifier)
|
232
|
-
frame_identifiers = identifier
|
233
|
-
identifier = add_tagname_if_needed identifier, 'select'
|
234
|
-
how, what = Elements::SelectList.selenium_identifier_for identifier
|
216
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::SelectList, 'select')
|
235
217
|
switch_to_frame(frame_identifiers)
|
236
218
|
value = @browser.find_element(how, what).attribute('value')
|
237
219
|
@browser.switch_to.default_content
|
@@ -243,9 +225,7 @@ module PageObject
|
|
243
225
|
# See PageObject::Accessors#select_list
|
244
226
|
#
|
245
227
|
def select_list_value_set(identifier, value)
|
246
|
-
frame_identifiers = identifier
|
247
|
-
identifier = add_tagname_if_needed identifier, 'select'
|
248
|
-
how, what = Elements::SelectList.selenium_identifier_for identifier
|
228
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::SelectList, 'select')
|
249
229
|
switch_to_frame(frame_identifiers)
|
250
230
|
@browser.find_element(how, what).send_keys(value)
|
251
231
|
@browser.switch_to.default_content
|
@@ -256,9 +236,7 @@ module PageObject
|
|
256
236
|
# See PageObject::Accessors#select_list
|
257
237
|
#
|
258
238
|
def select_list_for(identifier)
|
259
|
-
frame_identifiers = identifier
|
260
|
-
identifier = add_tagname_if_needed identifier, 'select'
|
261
|
-
how, what = Elements::SelectList.selenium_identifier_for identifier
|
239
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::SelectList, 'select')
|
262
240
|
switch_to_frame(frame_identifiers)
|
263
241
|
element = @browser.find_element(how, what)
|
264
242
|
@browser.switch_to.default_content
|
@@ -270,9 +248,7 @@ module PageObject
|
|
270
248
|
# See PageObject::Accessors#link
|
271
249
|
#
|
272
250
|
def click_link_for(identifier)
|
273
|
-
frame_identifiers = identifier
|
274
|
-
identifier = add_tagname_if_needed identifier, "a"
|
275
|
-
how, what = Elements::Link.selenium_identifier_for identifier
|
251
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Link, 'a')
|
276
252
|
switch_to_frame frame_identifiers
|
277
253
|
@browser.find_element(how, what).click
|
278
254
|
@browser.switch_to.default_content
|
@@ -283,9 +259,7 @@ module PageObject
|
|
283
259
|
# see PageObject::Accessors#link
|
284
260
|
#
|
285
261
|
def link_for(identifier)
|
286
|
-
frame_identifiers = identifier
|
287
|
-
identifier = add_tagname_if_needed identifier, "a"
|
288
|
-
how, what = Elements::Link.selenium_identifier_for identifier
|
262
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Link, 'a')
|
289
263
|
switch_to_frame(frame_identifiers)
|
290
264
|
element = @browser.find_element(how, what)
|
291
265
|
@browser.switch_to.default_content
|
@@ -297,9 +271,7 @@ module PageObject
|
|
297
271
|
# See PageObject::Accessors#checkbox
|
298
272
|
#
|
299
273
|
def check_checkbox(identifier)
|
300
|
-
frame_identifiers = identifier
|
301
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'checkbox'
|
302
|
-
how, what = Elements::CheckBox.selenium_identifier_for identifier
|
274
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox, 'input', :type => 'checkbox')
|
303
275
|
switch_to_frame(frame_identifiers)
|
304
276
|
@browser.find_element(how, what).click unless @browser.find_element(how, what).selected?
|
305
277
|
@browser.switch_to.default_content
|
@@ -310,9 +282,7 @@ module PageObject
|
|
310
282
|
# See PageObject::Accessors#checkbox
|
311
283
|
#
|
312
284
|
def uncheck_checkbox(identifier)
|
313
|
-
frame_identifiers = identifier
|
314
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'checkbox'
|
315
|
-
how, what = Elements::CheckBox.selenium_identifier_for identifier
|
285
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox, 'input', :type => 'checkbox')
|
316
286
|
switch_to_frame(frame_identifiers)
|
317
287
|
@browser.find_element(how, what).click if @browser.find_element(how, what).selected?
|
318
288
|
@browser.switch_to.default_content
|
@@ -323,9 +293,7 @@ module PageObject
|
|
323
293
|
# See PageObject::Accessors#checkbox
|
324
294
|
#
|
325
295
|
def checkbox_checked?(identifier)
|
326
|
-
frame_identifiers = identifier
|
327
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'checkbox'
|
328
|
-
how, what = Elements::CheckBox.selenium_identifier_for identifier
|
296
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox, 'input', :type => 'checkbox')
|
329
297
|
switch_to_frame(frame_identifiers)
|
330
298
|
value = @browser.find_element(how, what).selected?
|
331
299
|
@browser.switch_to.default_content
|
@@ -337,9 +305,7 @@ module PageObject
|
|
337
305
|
# See PageObject::Accessors#checkbox
|
338
306
|
#
|
339
307
|
def checkbox_for(identifier)
|
340
|
-
frame_identifiers = identifier
|
341
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'checkbox'
|
342
|
-
how, what = Elements::CheckBox.selenium_identifier_for identifier
|
308
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox, 'input', :type => 'checkbox')
|
343
309
|
switch_to_frame(frame_identifiers)
|
344
310
|
element = @browser.find_element(how, what)
|
345
311
|
@browser.switch_to.default_content
|
@@ -351,9 +317,7 @@ module PageObject
|
|
351
317
|
# See PageObject::Accessors#radio_button
|
352
318
|
#
|
353
319
|
def select_radio(identifier)
|
354
|
-
frame_identifiers = identifier
|
355
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'radio'
|
356
|
-
how, what = Elements::RadioButton.selenium_identifier_for identifier
|
320
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton, 'input', :type => 'radio')
|
357
321
|
switch_to_frame(frame_identifiers)
|
358
322
|
@browser.find_element(how, what).click unless @browser.find_element(how, what).selected?
|
359
323
|
@browser.switch_to.default_content
|
@@ -364,9 +328,7 @@ module PageObject
|
|
364
328
|
# See PageObject::Accessors#radio_button
|
365
329
|
#
|
366
330
|
def clear_radio(identifier)
|
367
|
-
frame_identifiers = identifier
|
368
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'radio'
|
369
|
-
how, what = Elements::RadioButton.selenium_identifier_for identifier
|
331
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton, 'input', :type => 'radio')
|
370
332
|
switch_to_frame(frame_identifiers)
|
371
333
|
@browser.find_element(how, what).click if @browser.find_element(how, what).selected?
|
372
334
|
@browser.switch_to.default_content
|
@@ -377,9 +339,7 @@ module PageObject
|
|
377
339
|
# See PageObject::Accessors#radio_button
|
378
340
|
#
|
379
341
|
def radio_selected?(identifier)
|
380
|
-
frame_identifiers = identifier
|
381
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'radio'
|
382
|
-
how, what = Elements::RadioButton.selenium_identifier_for identifier
|
342
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton, 'input', :type => 'radio')
|
383
343
|
switch_to_frame(frame_identifiers)
|
384
344
|
value = @browser.find_element(how, what).selected?
|
385
345
|
@browser.switch_to.default_content
|
@@ -391,9 +351,7 @@ module PageObject
|
|
391
351
|
# See PageObject::Accessors#radio_button
|
392
352
|
#
|
393
353
|
def radio_button_for(identifier)
|
394
|
-
frame_identifiers = identifier
|
395
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'radio'
|
396
|
-
how, what = Elements::RadioButton.selenium_identifier_for identifier
|
354
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton, 'input', :type => 'radio')
|
397
355
|
switch_to_frame(frame_identifiers)
|
398
356
|
element = @browser.find_element(how, what)
|
399
357
|
@browser.switch_to.default_content
|
@@ -405,9 +363,7 @@ module PageObject
|
|
405
363
|
# See PageObject::Accessors#div
|
406
364
|
#
|
407
365
|
def div_text_for(identifier)
|
408
|
-
frame_identifiers = identifier
|
409
|
-
identifier = add_tagname_if_needed identifier, 'div'
|
410
|
-
how, what = Elements::Div.selenium_identifier_for identifier
|
366
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Div, 'div')
|
411
367
|
switch_to_frame(frame_identifiers)
|
412
368
|
value = @browser.find_element(how, what).text
|
413
369
|
@browser.switch_to.default_content
|
@@ -419,9 +375,7 @@ module PageObject
|
|
419
375
|
# See PageObject::Accessors#div
|
420
376
|
#
|
421
377
|
def div_for(identifier)
|
422
|
-
frame_identifiers = identifier
|
423
|
-
identifier = add_tagname_if_needed identifier, 'div'
|
424
|
-
how, what = Elements::Div.selenium_identifier_for identifier
|
378
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Div, 'div')
|
425
379
|
switch_to_frame(frame_identifiers)
|
426
380
|
element = @browser.find_element(how, what)
|
427
381
|
@browser.switch_to.default_content
|
@@ -433,9 +387,7 @@ module PageObject
|
|
433
387
|
# See PageObject::Accessors#span
|
434
388
|
#
|
435
389
|
def span_text_for(identifier)
|
436
|
-
frame_identifiers = identifier
|
437
|
-
identifier = add_tagname_if_needed identifier, 'span'
|
438
|
-
how, what = Elements::Span.selenium_identifier_for identifier
|
390
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Span, 'span')
|
439
391
|
switch_to_frame(frame_identifiers)
|
440
392
|
value = @browser.find_element(how, what).text
|
441
393
|
@browser.switch_to.default_content
|
@@ -447,9 +399,7 @@ module PageObject
|
|
447
399
|
# See PageObject::Accessors#span
|
448
400
|
#
|
449
401
|
def span_for(identifier)
|
450
|
-
frame_identifiers = identifier
|
451
|
-
identifier = add_tagname_if_needed identifier, 'span'
|
452
|
-
how, what = Elements::Span.selenium_identifier_for identifier
|
402
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Span, 'span')
|
453
403
|
switch_to_frame(frame_identifiers)
|
454
404
|
element = @browser.find_element(how, what)
|
455
405
|
@browser.switch_to.default_content
|
@@ -461,9 +411,7 @@ module PageObject
|
|
461
411
|
# See PageObject::Accessors#button
|
462
412
|
#
|
463
413
|
def click_button_for(identifier)
|
464
|
-
frame_identifiers = identifier
|
465
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'submit'
|
466
|
-
how, what = Elements::Button.selenium_identifier_for identifier
|
414
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Button, 'input', :type => 'submit')
|
467
415
|
switch_to_frame(frame_identifiers)
|
468
416
|
@browser.find_element(how, what).click
|
469
417
|
@browser.switch_to.default_content
|
@@ -474,9 +422,7 @@ module PageObject
|
|
474
422
|
# See PageObject::Accessors#button
|
475
423
|
#
|
476
424
|
def button_for(identifier)
|
477
|
-
frame_identifiers = identifier
|
478
|
-
identifier = add_tagname_if_needed identifier, 'input', :type => 'submit'
|
479
|
-
how, what = Elements::Button.selenium_identifier_for identifier
|
425
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Button, 'input', :type => 'submit')
|
480
426
|
switch_to_frame(frame_identifiers)
|
481
427
|
element = @browser.find_element(how, what)
|
482
428
|
@browser.switch_to.default_content
|
@@ -488,9 +434,7 @@ module PageObject
|
|
488
434
|
# See PageObject::Accessors#table
|
489
435
|
#
|
490
436
|
def table_for(identifier)
|
491
|
-
frame_identifiers = identifier
|
492
|
-
identifier = add_tagname_if_needed identifier, 'table'
|
493
|
-
how, what = Elements::Table.selenium_identifier_for identifier
|
437
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Table, 'table')
|
494
438
|
switch_to_frame(frame_identifiers)
|
495
439
|
element = @browser.find_element(how, what)
|
496
440
|
@browser.switch_to.default_content
|
@@ -502,9 +446,7 @@ module PageObject
|
|
502
446
|
# See PageObject::Accessors#cell
|
503
447
|
#
|
504
448
|
def cell_text_for(identifier)
|
505
|
-
frame_identifiers = identifier
|
506
|
-
identifier = add_tagname_if_needed identifier, 'td'
|
507
|
-
how, what = Elements::TableCell.selenium_identifier_for identifier
|
449
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TableCell, 'td')
|
508
450
|
switch_to_frame(frame_identifiers)
|
509
451
|
value = @browser.find_element(how, what).text
|
510
452
|
@browser.switch_to.default_content
|
@@ -516,9 +458,7 @@ module PageObject
|
|
516
458
|
# See PageObject::Accessors#cell
|
517
459
|
#
|
518
460
|
def cell_for(identifier)
|
519
|
-
frame_identifiers = identifier
|
520
|
-
identifier = add_tagname_if_needed identifier, 'td'
|
521
|
-
how, what = Elements::TableCell.selenium_identifier_for identifier
|
461
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::TableCell, 'td')
|
522
462
|
switch_to_frame(frame_identifiers)
|
523
463
|
element = @browser.find_element(how, what)
|
524
464
|
@browser.switch_to.default_content
|
@@ -530,9 +470,7 @@ module PageObject
|
|
530
470
|
# See PageObject::Accessors#image
|
531
471
|
#
|
532
472
|
def image_for(identifier)
|
533
|
-
frame_identifiers = identifier
|
534
|
-
identifier = add_tagname_if_needed identifier, 'img'
|
535
|
-
how, what = Elements::Image.selenium_identifier_for identifier
|
473
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Image, 'img')
|
536
474
|
switch_to_frame(frame_identifiers)
|
537
475
|
element = @browser.find_element(how, what)
|
538
476
|
@browser.switch_to.default_content
|
@@ -544,9 +482,7 @@ module PageObject
|
|
544
482
|
# See PageObject::Accessors#form
|
545
483
|
#
|
546
484
|
def form_for(identifier)
|
547
|
-
frame_identifiers = identifier
|
548
|
-
identifier = add_tagname_if_needed identifier, 'form'
|
549
|
-
how, what = Elements::Form.selenium_identifier_for identifier
|
485
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::Form, 'form')
|
550
486
|
switch_to_frame(frame_identifiers)
|
551
487
|
element = @browser.find_element(how, what)
|
552
488
|
@browser.switch_to.default_content
|
@@ -558,9 +494,7 @@ module PageObject
|
|
558
494
|
# See PageObject::Accessors#list_item
|
559
495
|
#
|
560
496
|
def list_item_text_for(identifier)
|
561
|
-
frame_identifiers = identifier
|
562
|
-
identifier = add_tagname_if_needed identifier, 'li'
|
563
|
-
how, what = Elements::ListItem.selenium_identifier_for identifier
|
497
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::ListItem, 'li')
|
564
498
|
switch_to_frame(frame_identifiers)
|
565
499
|
value = @browser.find_element(how, what).text
|
566
500
|
@browser.switch_to.default_content
|
@@ -572,9 +506,7 @@ module PageObject
|
|
572
506
|
# See PageObject::Accessors#list_item
|
573
507
|
#
|
574
508
|
def list_item_for(identifier)
|
575
|
-
frame_identifiers = identifier
|
576
|
-
identifier = add_tagname_if_needed identifier, 'li'
|
577
|
-
how, what = Elements::ListItem.selenium_identifier_for identifier
|
509
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::ListItem, 'li')
|
578
510
|
switch_to_frame(frame_identifiers)
|
579
511
|
element = @browser.find_element(how, what)
|
580
512
|
@browser.switch_to.default_content
|
@@ -586,9 +518,7 @@ module PageObject
|
|
586
518
|
# See PageObject::Accessors#unordered_list
|
587
519
|
#
|
588
520
|
def unordered_list_for(identifier)
|
589
|
-
frame_identifiers = identifier
|
590
|
-
identifier = add_tagname_if_needed identifier, 'ul'
|
591
|
-
how, what = Elements::UnorderedList.selenium_identifier_for identifier
|
521
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::UnorderedList, 'ul')
|
592
522
|
switch_to_frame(frame_identifiers)
|
593
523
|
element = @browser.find_element(how, what)
|
594
524
|
@browser.switch_to.default_content
|
@@ -600,9 +530,7 @@ module PageObject
|
|
600
530
|
# See PageObject::Accessors#ordered_list
|
601
531
|
#
|
602
532
|
def ordered_list_for(identifier)
|
603
|
-
frame_identifiers = identifier
|
604
|
-
identifier = add_tagname_if_needed identifier, 'ol'
|
605
|
-
how, what = Elements::OrderedList.selenium_identifier_for identifier
|
533
|
+
how, what, frame_identifiers = parse_identifiers(identifier, Elements::OrderedList, 'ol')
|
606
534
|
switch_to_frame(frame_identifiers)
|
607
535
|
element = @browser.find_element(how, what)
|
608
536
|
@browser.switch_to.default_content
|
@@ -610,6 +538,13 @@ module PageObject
|
|
610
538
|
end
|
611
539
|
|
612
540
|
private
|
541
|
+
|
542
|
+
def parse_identifiers(identifier, element, tag_name=nil, additional=nil)
|
543
|
+
frame_identifiers = identifier.delete(:frame)
|
544
|
+
identifier = add_tagname_if_needed identifier, tag_name, additional if tag_name
|
545
|
+
how, what = element.selenium_identifier_for identifier
|
546
|
+
return how, what, frame_identifiers
|
547
|
+
end
|
613
548
|
|
614
549
|
def add_tagname_if_needed identifier, tag, additional=nil
|
615
550
|
return identifier if identifier.length < 2 and supported_identifier(identifier, tag, additional)
|
@@ -627,6 +562,7 @@ module PageObject
|
|
627
562
|
return false if identifier[:text] and tag == 'input' and additional[:type] == 'hidden'
|
628
563
|
return false if identifier[:href] and tag == 'a'
|
629
564
|
return false if identifier[:text] and tag == 'div'
|
565
|
+
return false if identifier[:text] and tag == 'td'
|
630
566
|
true
|
631
567
|
end
|
632
568
|
|
@@ -101,8 +101,7 @@ module PageObject
|
|
101
101
|
# See PageObject::Accessors#text_field
|
102
102
|
#
|
103
103
|
def text_field_value_for(identifier)
|
104
|
-
frame_identifiers = identifier
|
105
|
-
identifier = Elements::TextField.watir_identifier_for identifier
|
104
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextField)
|
106
105
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).value"
|
107
106
|
end
|
108
107
|
|
@@ -111,8 +110,7 @@ module PageObject
|
|
111
110
|
# See PageObject::Accessors#text_field
|
112
111
|
#
|
113
112
|
def text_field_value_set(identifier, value)
|
114
|
-
frame_identifiers = identifier
|
115
|
-
identifier = Elements::TextField.watir_identifier_for identifier
|
113
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextField)
|
116
114
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).set(value)"
|
117
115
|
end
|
118
116
|
|
@@ -121,8 +119,7 @@ module PageObject
|
|
121
119
|
# See PageObject::Accessors#text_field
|
122
120
|
#
|
123
121
|
def text_field_for(identifier)
|
124
|
-
frame_identifiers = identifier
|
125
|
-
identifier = Elements::TextField.watir_identifier_for identifier
|
122
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextField)
|
126
123
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier)"
|
127
124
|
Elements::TextField.new(element, :platform => :watir)
|
128
125
|
end
|
@@ -132,8 +129,7 @@ module PageObject
|
|
132
129
|
# See PageObject::Accessors#hidden_field
|
133
130
|
#
|
134
131
|
def hidden_field_value_for(identifier)
|
135
|
-
frame_identifiers = identifier
|
136
|
-
identifier = Elements::HiddenField.watir_identifier_for identifier
|
132
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::HiddenField)
|
137
133
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier).value"
|
138
134
|
end
|
139
135
|
|
@@ -142,8 +138,7 @@ module PageObject
|
|
142
138
|
# See PageObject::Accessors#hidden_field
|
143
139
|
#
|
144
140
|
def hidden_field_for(identifier)
|
145
|
-
frame_identifiers = identifier
|
146
|
-
identifier = Elements::HiddenField.watir_identifier_for identifier
|
141
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::HiddenField)
|
147
142
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier)"
|
148
143
|
Elements::HiddenField.new(element, :platform => :watir)
|
149
144
|
end
|
@@ -153,8 +148,7 @@ module PageObject
|
|
153
148
|
# See PageObject::Accessors#text_area
|
154
149
|
#
|
155
150
|
def text_area_value_set(identifier, value)
|
156
|
-
frame_identifiers = identifier
|
157
|
-
identifier = Elements::TextArea.watir_identifier_for identifier
|
151
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextArea)
|
158
152
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).send_keys(value)"
|
159
153
|
end
|
160
154
|
|
@@ -163,8 +157,7 @@ module PageObject
|
|
163
157
|
# See PageObject::Accessors#text_area
|
164
158
|
#
|
165
159
|
def text_area_value_for(identifier)
|
166
|
-
frame_identifiers = identifier
|
167
|
-
identifier = Elements::TextArea.watir_identifier_for identifier
|
160
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextArea)
|
168
161
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).value"
|
169
162
|
end
|
170
163
|
|
@@ -173,8 +166,7 @@ module PageObject
|
|
173
166
|
# See PageObject::Accessors#text_area
|
174
167
|
#
|
175
168
|
def text_area_for(identifier)
|
176
|
-
frame_identifiers = identifier
|
177
|
-
identifier = Elements::TextArea.watir_identifier_for identifier
|
169
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextArea)
|
178
170
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier)"
|
179
171
|
Elements::TextArea.new(element, :platform => :watir)
|
180
172
|
end
|
@@ -184,8 +176,7 @@ module PageObject
|
|
184
176
|
# See PageObject::Accessors#select_list
|
185
177
|
#
|
186
178
|
def select_list_value_for(identifier)
|
187
|
-
frame_identifiers = identifier
|
188
|
-
identifier = Elements::SelectList.watir_identifier_for identifier
|
179
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::SelectList)
|
189
180
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).value"
|
190
181
|
end
|
191
182
|
|
@@ -194,8 +185,7 @@ module PageObject
|
|
194
185
|
# See PageObject::Accessors#select_list
|
195
186
|
#
|
196
187
|
def select_list_value_set(identifier, value)
|
197
|
-
frame_identifiers = identifier
|
198
|
-
identifier = Elements::SelectList.watir_identifier_for identifier
|
188
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::SelectList)
|
199
189
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).select(value)"
|
200
190
|
end
|
201
191
|
|
@@ -204,8 +194,7 @@ module PageObject
|
|
204
194
|
# See PageObject::Accessors#select_list
|
205
195
|
#
|
206
196
|
def select_list_for(identifier)
|
207
|
-
frame_identifiers = identifier
|
208
|
-
identifier = Elements::SelectList.watir_identifier_for identifier
|
197
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::SelectList)
|
209
198
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier)"
|
210
199
|
Elements::SelectList.new(element, :platform => :watir)
|
211
200
|
end
|
@@ -215,8 +204,7 @@ module PageObject
|
|
215
204
|
# See PageObject::Accessors#link
|
216
205
|
#
|
217
206
|
def click_link_for(identifier)
|
218
|
-
frame_identifiers = identifier
|
219
|
-
identifier = Elements::Link.watir_identifier_for identifier
|
207
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Link)
|
220
208
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}link(identifier).click if identifier"
|
221
209
|
end
|
222
210
|
|
@@ -225,8 +213,7 @@ module PageObject
|
|
225
213
|
# see PageObject::Accessors#link
|
226
214
|
#
|
227
215
|
def link_for(identifier)
|
228
|
-
frame_identifiers = identifier
|
229
|
-
identifier = Elements::Link.watir_identifier_for identifier
|
216
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Link)
|
230
217
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}link(identifier)"
|
231
218
|
Elements::Link.new(element, :platform => :watir)
|
232
219
|
end
|
@@ -236,8 +223,7 @@ module PageObject
|
|
236
223
|
# See PageObject::Accessors#checkbox
|
237
224
|
#
|
238
225
|
def check_checkbox(identifier)
|
239
|
-
frame_identifiers = identifier
|
240
|
-
identifier = Elements::CheckBox.watir_identifier_for identifier
|
226
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
241
227
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set"
|
242
228
|
end
|
243
229
|
|
@@ -246,8 +232,7 @@ module PageObject
|
|
246
232
|
# See PageObject::Accessors#checkbox
|
247
233
|
#
|
248
234
|
def uncheck_checkbox(identifier)
|
249
|
-
frame_identifiers = identifier
|
250
|
-
identifier = Elements::CheckBox.watir_identifier_for identifier
|
235
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
251
236
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).clear"
|
252
237
|
end
|
253
238
|
|
@@ -256,8 +241,7 @@ module PageObject
|
|
256
241
|
# See PageObject::Accessors#checkbox
|
257
242
|
#
|
258
243
|
def checkbox_checked?(identifier)
|
259
|
-
frame_identifiers = identifier
|
260
|
-
identifier = Elements::CheckBox.watir_identifier_for identifier
|
244
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
261
245
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set?"
|
262
246
|
end
|
263
247
|
|
@@ -266,8 +250,7 @@ module PageObject
|
|
266
250
|
# See PageObject::Accessors#checkbox
|
267
251
|
#
|
268
252
|
def checkbox_for(identifier)
|
269
|
-
frame_identifiers = identifier
|
270
|
-
identifier = Elements::CheckBox.watir_identifier_for identifier
|
253
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
271
254
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier)"
|
272
255
|
Elements::CheckBox.new(element, :platform => :watir)
|
273
256
|
end
|
@@ -277,8 +260,7 @@ module PageObject
|
|
277
260
|
# See PageObject::Accessors#radio_button
|
278
261
|
#
|
279
262
|
def select_radio(identifier)
|
280
|
-
frame_identifiers = identifier
|
281
|
-
identifier = Elements::RadioButton.watir_identifier_for identifier
|
263
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
282
264
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set"
|
283
265
|
end
|
284
266
|
|
@@ -287,8 +269,7 @@ module PageObject
|
|
287
269
|
# See PageObject::Accessors#radio_button
|
288
270
|
#
|
289
271
|
def clear_radio(identifier)
|
290
|
-
frame_identifiers = identifier
|
291
|
-
identifier = Elements::RadioButton.watir_identifier_for identifier
|
272
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
292
273
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).clear"
|
293
274
|
end
|
294
275
|
|
@@ -297,8 +278,7 @@ module PageObject
|
|
297
278
|
# See PageObject::Accessors#radio_button
|
298
279
|
#
|
299
280
|
def radio_selected?(identifier)
|
300
|
-
frame_identifiers = identifier
|
301
|
-
identifier = Elements::RadioButton.watir_identifier_for identifier
|
281
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
302
282
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set?"
|
303
283
|
end
|
304
284
|
|
@@ -307,8 +287,7 @@ module PageObject
|
|
307
287
|
# See PageObject::Accessors#radio_button
|
308
288
|
#
|
309
289
|
def radio_button_for(identifier)
|
310
|
-
frame_identifiers = identifier
|
311
|
-
identifier = Elements::RadioButton.watir_identifier_for identifier
|
290
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
312
291
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier)"
|
313
292
|
PageObject::Elements::RadioButton.new(element, :platform => :watir)
|
314
293
|
end
|
@@ -318,9 +297,7 @@ module PageObject
|
|
318
297
|
# See PageObject::Accessors#div
|
319
298
|
#
|
320
299
|
def div_text_for(identifier)
|
321
|
-
frame_identifiers = identifier
|
322
|
-
identifier = add_tagname_if_needed identifier, "div"
|
323
|
-
identifier = Elements::Div.watir_identifier_for identifier
|
300
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Div, 'div')
|
324
301
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier).text"
|
325
302
|
end
|
326
303
|
|
@@ -329,9 +306,7 @@ module PageObject
|
|
329
306
|
# See PageObject::Accessors#div
|
330
307
|
#
|
331
308
|
def div_for(identifier)
|
332
|
-
frame_identifiers = identifier
|
333
|
-
identifier = add_tagname_if_needed identifier, "div"
|
334
|
-
identifier = Elements::Div.watir_identifier_for identifier
|
309
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Div, 'div')
|
335
310
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier)"
|
336
311
|
PageObject::Elements::Div.new(element, :platform => :watir)
|
337
312
|
end
|
@@ -341,9 +316,7 @@ module PageObject
|
|
341
316
|
# See PageObject::Accessors#span
|
342
317
|
#
|
343
318
|
def span_text_for(identifier)
|
344
|
-
frame_identifiers = identifier
|
345
|
-
identifier = add_tagname_if_needed identifier, "span"
|
346
|
-
identifier = Elements::Span.watir_identifier_for identifier
|
319
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Span, 'span')
|
347
320
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier).text"
|
348
321
|
end
|
349
322
|
|
@@ -352,9 +325,7 @@ module PageObject
|
|
352
325
|
# See PageObject::Accessors#span
|
353
326
|
#
|
354
327
|
def span_for(identifier)
|
355
|
-
frame_identifiers = identifier
|
356
|
-
identifier = add_tagname_if_needed identifier, "span"
|
357
|
-
identifier = Elements::Span.watir_identifier_for identifier
|
328
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Span, 'span')
|
358
329
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier)"
|
359
330
|
PageObject::Elements::Span.new(element, :platform => :watir)
|
360
331
|
end
|
@@ -364,8 +335,7 @@ module PageObject
|
|
364
335
|
# See PageObject::Accessors#button
|
365
336
|
#
|
366
337
|
def click_button_for(identifier)
|
367
|
-
frame_identifiers = identifier
|
368
|
-
identifier = Elements::Button.watir_identifier_for identifier
|
338
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Button)
|
369
339
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier).click"
|
370
340
|
end
|
371
341
|
|
@@ -374,8 +344,7 @@ module PageObject
|
|
374
344
|
# See PageObject::Accessors#button
|
375
345
|
#
|
376
346
|
def button_for(identifier)
|
377
|
-
frame_identifiers = identifier
|
378
|
-
identifier = Elements::Button.watir_identifier_for identifier
|
347
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Button)
|
379
348
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier)"
|
380
349
|
PageObject::Elements::Button.new(element, :platform => :watir)
|
381
350
|
end
|
@@ -385,9 +354,7 @@ module PageObject
|
|
385
354
|
# See PageObject::Accessors#table
|
386
355
|
#
|
387
356
|
def table_for(identifier)
|
388
|
-
frame_identifiers = identifier
|
389
|
-
identifier = add_tagname_if_needed identifier, "table"
|
390
|
-
identifier = Elements::Table.watir_identifier_for identifier.clone
|
357
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Table, 'table')
|
391
358
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}table(identifier)"
|
392
359
|
PageObject::Elements::Table.new(element, :platform => :watir)
|
393
360
|
end
|
@@ -397,9 +364,7 @@ module PageObject
|
|
397
364
|
# See PageObject::Accessors#cell
|
398
365
|
#
|
399
366
|
def cell_text_for(identifier)
|
400
|
-
frame_identifiers = identifier
|
401
|
-
identifier = add_tagname_if_needed identifier, "td"
|
402
|
-
identifier = Elements::TableCell.watir_identifier_for identifier
|
367
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TableCell, 'td')
|
403
368
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier).text"
|
404
369
|
end
|
405
370
|
|
@@ -408,9 +373,7 @@ module PageObject
|
|
408
373
|
# See PageObject::Accessors#cell
|
409
374
|
#
|
410
375
|
def cell_for(identifier)
|
411
|
-
frame_identifiers = identifier
|
412
|
-
identifier = add_tagname_if_needed identifier, "td"
|
413
|
-
identifier = Elements::TableCell.watir_identifier_for identifier
|
376
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TableCell, 'td')
|
414
377
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier)"
|
415
378
|
PageObject::Elements::TableCell.new(element, :platform => :watir)
|
416
379
|
end
|
@@ -420,8 +383,7 @@ module PageObject
|
|
420
383
|
# See PageObject::Accessors#image
|
421
384
|
#
|
422
385
|
def image_for(identifier)
|
423
|
-
frame_identifiers = identifier
|
424
|
-
identifier = Elements::Image.watir_identifier_for identifier
|
386
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Image)
|
425
387
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}image(identifier)"
|
426
388
|
PageObject::Elements::Image.new(element, :platform => :watir)
|
427
389
|
end
|
@@ -431,8 +393,7 @@ module PageObject
|
|
431
393
|
# See PageObject::Accessors#form
|
432
394
|
#
|
433
395
|
def form_for(identifier)
|
434
|
-
frame_identifiers = identifier
|
435
|
-
identifier = Elements::Form.watir_identifier_for identifier
|
396
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Form)
|
436
397
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}form(identifier)"
|
437
398
|
PageObject::Elements::Form.new(element, :platform => :watir)
|
438
399
|
end
|
@@ -442,9 +403,7 @@ module PageObject
|
|
442
403
|
# See PageObject::Accessors#list_item
|
443
404
|
#
|
444
405
|
def list_item_text_for(identifier)
|
445
|
-
frame_identifiers = identifier
|
446
|
-
identifier = add_tagname_if_needed identifier, "li"
|
447
|
-
identifier = Elements::ListItem.watir_identifier_for identifier
|
406
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::ListItem, 'li')
|
448
407
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier).text"
|
449
408
|
end
|
450
409
|
|
@@ -453,9 +412,7 @@ module PageObject
|
|
453
412
|
# See PageObject::Accessors#list_item
|
454
413
|
#
|
455
414
|
def list_item_for(identifier)
|
456
|
-
frame_identifiers = identifier
|
457
|
-
identifier = add_tagname_if_needed identifier, "li"
|
458
|
-
identifier = Elements::ListItem.watir_identifier_for identifier
|
415
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::ListItem, 'li')
|
459
416
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier)"
|
460
417
|
PageObject::Elements::ListItem.new(element, :platform => :watir)
|
461
418
|
end
|
@@ -465,9 +422,7 @@ module PageObject
|
|
465
422
|
# See PageObject::Accessors#unordered_list
|
466
423
|
#
|
467
424
|
def unordered_list_for(identifier)
|
468
|
-
frame_identifiers = identifier
|
469
|
-
identifier = add_tagname_if_needed identifier, "ul"
|
470
|
-
identifier = Elements::UnorderedList.watir_identifier_for identifier
|
425
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::UnorderedList, 'ul')
|
471
426
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ul(identifier)"
|
472
427
|
PageObject::Elements::UnorderedList.new(element, :platform => :watir)
|
473
428
|
end
|
@@ -477,14 +432,19 @@ module PageObject
|
|
477
432
|
# See PageObject::Accessors#ordered_list
|
478
433
|
#
|
479
434
|
def ordered_list_for(identifier)
|
480
|
-
frame_identifiers = identifier
|
481
|
-
identifier = add_tagname_if_needed identifier, "ol"
|
482
|
-
identifier = Elements::OrderedList.watir_identifier_for identifier
|
435
|
+
identifier, frame_identifiers = parse_identifiers(identifier, Elements::OrderedList, 'ol')
|
483
436
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ol(identifier)"
|
484
437
|
PageObject::Elements::OrderedList.new(element, :platform => :watir)
|
485
438
|
end
|
486
439
|
|
487
440
|
private
|
441
|
+
|
442
|
+
def parse_identifiers(identifier, element, tag_name=nil)
|
443
|
+
frame_identifiers = identifier.delete(:frame)
|
444
|
+
identifier = add_tagname_if_needed identifier, tag_name if tag_name
|
445
|
+
identifier = element.watir_identifier_for identifier
|
446
|
+
return identifier, frame_identifiers
|
447
|
+
end
|
488
448
|
|
489
449
|
def add_tagname_if_needed identifier, tag
|
490
450
|
return identifier if identifier.length < 2 and not identifier[:name]
|