page-object 0.2.1 → 0.2.2
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/features/element.feature +8 -0
- data/features/frames.feature +32 -7
- data/features/html/nested_frame_1.html +1 -0
- data/features/html/nested_frame_2.html +11 -0
- data/features/html/nested_frame_3.html +14 -0
- data/features/html/nested_frames.html +10 -0
- data/features/step_definitions/element_steps.rb +4 -0
- data/features/step_definitions/frames_steps.rb +58 -6
- data/features/support/url_helper.rb +8 -0
- data/lib/page-object.rb +0 -10
- data/lib/page-object/accessors.rb +23 -0
- data/lib/page-object/core_ext/string.rb +5 -0
- data/lib/page-object/platforms/selenium/element.rb +35 -24
- data/lib/page-object/platforms/selenium/page_object.rb +138 -18
- data/lib/page-object/platforms/watir/element.rb +7 -0
- data/lib/page-object/platforms/watir/page_object.rb +85 -45
- data/lib/page-object/version.rb +1 -1
- data/spec/page-object/accessors_spec.rb +7 -1
- data/spec/page-object/elements/element_spec.rb +11 -0
- data/spec/page-object/page-object_spec.rb +0 -13
- data/spec/page-object/platforms/selenium/selenium_page_object_spec.rb +5 -0
- metadata +13 -2
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'watir-webdriver/extensions/alerts'
|
2
2
|
require 'page-object/elements'
|
3
|
+
require 'page-object/core_ext/string'
|
3
4
|
|
4
5
|
|
5
6
|
module PageObject
|
@@ -87,14 +88,6 @@ module PageObject
|
|
87
88
|
@browser.window(win_id).use
|
88
89
|
end
|
89
90
|
|
90
|
-
#
|
91
|
-
# platform method to handle switching to a frame
|
92
|
-
# See PageObject#switch_to_frame
|
93
|
-
#
|
94
|
-
def switch_to_frame(identifier)
|
95
|
-
@browser.wd.switch_to.frame(identifier)
|
96
|
-
end
|
97
|
-
|
98
91
|
#
|
99
92
|
# platform method to refresh the page
|
100
93
|
# See PageObject#refresh
|
@@ -108,8 +101,9 @@ module PageObject
|
|
108
101
|
# See PageObject::Accessors#text_field
|
109
102
|
#
|
110
103
|
def text_field_value_for(identifier)
|
104
|
+
frame_identifiers = identifier.delete(:frame)
|
111
105
|
identifier = Elements::TextField.watir_identifier_for identifier
|
112
|
-
@browser.text_field(identifier).value
|
106
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).value"
|
113
107
|
end
|
114
108
|
|
115
109
|
#
|
@@ -117,17 +111,19 @@ module PageObject
|
|
117
111
|
# See PageObject::Accessors#text_field
|
118
112
|
#
|
119
113
|
def text_field_value_set(identifier, value)
|
114
|
+
frame_identifiers = identifier.delete(:frame)
|
120
115
|
identifier = Elements::TextField.watir_identifier_for identifier
|
121
|
-
@browser.text_field(identifier).set(value)
|
116
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).set(value)"
|
122
117
|
end
|
123
|
-
|
118
|
+
|
124
119
|
#
|
125
120
|
# platform method to retrieve a text field element
|
126
121
|
# See PageObject::Accessors#text_field
|
127
122
|
#
|
128
123
|
def text_field_for(identifier)
|
124
|
+
frame_identifiers = identifier.delete(:frame)
|
129
125
|
identifier = Elements::TextField.watir_identifier_for identifier
|
130
|
-
element = @browser.text_field(identifier)
|
126
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier)"
|
131
127
|
Elements::TextField.new(element, :platform => :watir)
|
132
128
|
end
|
133
129
|
|
@@ -136,8 +132,9 @@ module PageObject
|
|
136
132
|
# See PageObject::Accessors#hidden_field
|
137
133
|
#
|
138
134
|
def hidden_field_value_for(identifier)
|
135
|
+
frame_identifiers = identifier.delete(:frame)
|
139
136
|
identifier = Elements::HiddenField.watir_identifier_for identifier
|
140
|
-
@browser.hidden(identifier).value
|
137
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier).value"
|
141
138
|
end
|
142
139
|
|
143
140
|
#
|
@@ -145,8 +142,9 @@ module PageObject
|
|
145
142
|
# See PageObject::Accessors#hidden_field
|
146
143
|
#
|
147
144
|
def hidden_field_for(identifier)
|
145
|
+
frame_identifiers = identifier.delete(:frame)
|
148
146
|
identifier = Elements::HiddenField.watir_identifier_for identifier
|
149
|
-
element = @browser.hidden(identifier)
|
147
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier)"
|
150
148
|
Elements::HiddenField.new(element, :platform => :watir)
|
151
149
|
end
|
152
150
|
|
@@ -155,8 +153,9 @@ module PageObject
|
|
155
153
|
# See PageObject::Accessors#text_area
|
156
154
|
#
|
157
155
|
def text_area_value_set(identifier, value)
|
156
|
+
frame_identifiers = identifier.delete(:frame)
|
158
157
|
identifier = Elements::TextArea.watir_identifier_for identifier
|
159
|
-
@browser.textarea(identifier).send_keys(value)
|
158
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).send_keys(value)"
|
160
159
|
end
|
161
160
|
|
162
161
|
#
|
@@ -164,8 +163,9 @@ module PageObject
|
|
164
163
|
# See PageObject::Accessors#text_area
|
165
164
|
#
|
166
165
|
def text_area_value_for(identifier)
|
166
|
+
frame_identifiers = identifier.delete(:frame)
|
167
167
|
identifier = Elements::TextArea.watir_identifier_for identifier
|
168
|
-
@browser.textarea(identifier).value
|
168
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).value"
|
169
169
|
end
|
170
170
|
|
171
171
|
#
|
@@ -173,8 +173,9 @@ module PageObject
|
|
173
173
|
# See PageObject::Accessors#text_area
|
174
174
|
#
|
175
175
|
def text_area_for(identifier)
|
176
|
+
frame_identifiers = identifier.delete(:frame)
|
176
177
|
identifier = Elements::TextArea.watir_identifier_for identifier
|
177
|
-
element = @browser.textarea(identifier)
|
178
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier)"
|
178
179
|
Elements::TextArea.new(element, :platform => :watir)
|
179
180
|
end
|
180
181
|
|
@@ -183,8 +184,9 @@ module PageObject
|
|
183
184
|
# See PageObject::Accessors#select_list
|
184
185
|
#
|
185
186
|
def select_list_value_for(identifier)
|
187
|
+
frame_identifiers = identifier.delete(:frame)
|
186
188
|
identifier = Elements::SelectList.watir_identifier_for identifier
|
187
|
-
@browser.select_list(identifier).value
|
189
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).value"
|
188
190
|
end
|
189
191
|
|
190
192
|
#
|
@@ -192,8 +194,9 @@ module PageObject
|
|
192
194
|
# See PageObject::Accessors#select_list
|
193
195
|
#
|
194
196
|
def select_list_value_set(identifier, value)
|
197
|
+
frame_identifiers = identifier.delete(:frame)
|
195
198
|
identifier = Elements::SelectList.watir_identifier_for identifier
|
196
|
-
@browser.select_list(identifier).select(value)
|
199
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).select(value)"
|
197
200
|
end
|
198
201
|
|
199
202
|
#
|
@@ -201,8 +204,9 @@ module PageObject
|
|
201
204
|
# See PageObject::Accessors#select_list
|
202
205
|
#
|
203
206
|
def select_list_for(identifier)
|
207
|
+
frame_identifiers = identifier.delete(:frame)
|
204
208
|
identifier = Elements::SelectList.watir_identifier_for identifier
|
205
|
-
element = @browser.select_list(identifier)
|
209
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier)"
|
206
210
|
Elements::SelectList.new(element, :platform => :watir)
|
207
211
|
end
|
208
212
|
|
@@ -211,8 +215,9 @@ module PageObject
|
|
211
215
|
# See PageObject::Accessors#link
|
212
216
|
#
|
213
217
|
def click_link_for(identifier)
|
218
|
+
frame_identifiers = identifier.delete(:frame)
|
214
219
|
identifier = Elements::Link.watir_identifier_for identifier
|
215
|
-
@browser.link(identifier).click if identifier
|
220
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}link(identifier).click if identifier"
|
216
221
|
end
|
217
222
|
|
218
223
|
#
|
@@ -220,8 +225,9 @@ module PageObject
|
|
220
225
|
# see PageObject::Accessors#link
|
221
226
|
#
|
222
227
|
def link_for(identifier)
|
228
|
+
frame_identifiers = identifier.delete(:frame)
|
223
229
|
identifier = Elements::Link.watir_identifier_for identifier
|
224
|
-
element = @browser.link(identifier)
|
230
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}link(identifier)"
|
225
231
|
Elements::Link.new(element, :platform => :watir)
|
226
232
|
end
|
227
233
|
|
@@ -230,8 +236,9 @@ module PageObject
|
|
230
236
|
# See PageObject::Accessors#checkbox
|
231
237
|
#
|
232
238
|
def check_checkbox(identifier)
|
239
|
+
frame_identifiers = identifier.delete(:frame)
|
233
240
|
identifier = Elements::CheckBox.watir_identifier_for identifier
|
234
|
-
@browser.checkbox(identifier).set
|
241
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set"
|
235
242
|
end
|
236
243
|
|
237
244
|
#
|
@@ -239,8 +246,9 @@ module PageObject
|
|
239
246
|
# See PageObject::Accessors#checkbox
|
240
247
|
#
|
241
248
|
def uncheck_checkbox(identifier)
|
249
|
+
frame_identifiers = identifier.delete(:frame)
|
242
250
|
identifier = Elements::CheckBox.watir_identifier_for identifier
|
243
|
-
@browser.checkbox(identifier).clear
|
251
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).clear"
|
244
252
|
end
|
245
253
|
|
246
254
|
#
|
@@ -248,8 +256,9 @@ module PageObject
|
|
248
256
|
# See PageObject::Accessors#checkbox
|
249
257
|
#
|
250
258
|
def checkbox_checked?(identifier)
|
259
|
+
frame_identifiers = identifier.delete(:frame)
|
251
260
|
identifier = Elements::CheckBox.watir_identifier_for identifier
|
252
|
-
@browser.checkbox(identifier).set?
|
261
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set?"
|
253
262
|
end
|
254
263
|
|
255
264
|
#
|
@@ -257,8 +266,9 @@ module PageObject
|
|
257
266
|
# See PageObject::Accessors#checkbox
|
258
267
|
#
|
259
268
|
def checkbox_for(identifier)
|
269
|
+
frame_identifiers = identifier.delete(:frame)
|
260
270
|
identifier = Elements::CheckBox.watir_identifier_for identifier
|
261
|
-
element = @browser.checkbox(identifier)
|
271
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier)"
|
262
272
|
Elements::CheckBox.new(element, :platform => :watir)
|
263
273
|
end
|
264
274
|
|
@@ -267,8 +277,9 @@ module PageObject
|
|
267
277
|
# See PageObject::Accessors#radio_button
|
268
278
|
#
|
269
279
|
def select_radio(identifier)
|
280
|
+
frame_identifiers = identifier.delete(:frame)
|
270
281
|
identifier = Elements::RadioButton.watir_identifier_for identifier
|
271
|
-
@browser.radio(identifier).set
|
282
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set"
|
272
283
|
end
|
273
284
|
|
274
285
|
#
|
@@ -276,8 +287,9 @@ module PageObject
|
|
276
287
|
# See PageObject::Accessors#radio_button
|
277
288
|
#
|
278
289
|
def clear_radio(identifier)
|
290
|
+
frame_identifiers = identifier.delete(:frame)
|
279
291
|
identifier = Elements::RadioButton.watir_identifier_for identifier
|
280
|
-
@browser.radio(identifier).clear
|
292
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).clear"
|
281
293
|
end
|
282
294
|
|
283
295
|
#
|
@@ -285,8 +297,9 @@ module PageObject
|
|
285
297
|
# See PageObject::Accessors#radio_button
|
286
298
|
#
|
287
299
|
def radio_selected?(identifier)
|
300
|
+
frame_identifiers = identifier.delete(:frame)
|
288
301
|
identifier = Elements::RadioButton.watir_identifier_for identifier
|
289
|
-
@browser.radio(identifier).set?
|
302
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set?"
|
290
303
|
end
|
291
304
|
|
292
305
|
#
|
@@ -294,8 +307,9 @@ module PageObject
|
|
294
307
|
# See PageObject::Accessors#radio_button
|
295
308
|
#
|
296
309
|
def radio_button_for(identifier)
|
310
|
+
frame_identifiers = identifier.delete(:frame)
|
297
311
|
identifier = Elements::RadioButton.watir_identifier_for identifier
|
298
|
-
element = @browser.radio(identifier)
|
312
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier)"
|
299
313
|
PageObject::Elements::RadioButton.new(element, :platform => :watir)
|
300
314
|
end
|
301
315
|
|
@@ -304,9 +318,10 @@ module PageObject
|
|
304
318
|
# See PageObject::Accessors#div
|
305
319
|
#
|
306
320
|
def div_text_for(identifier)
|
321
|
+
frame_identifiers = identifier.delete(:frame)
|
307
322
|
identifier = add_tagname_if_needed identifier, "div"
|
308
323
|
identifier = Elements::Div.watir_identifier_for identifier
|
309
|
-
@browser.div(identifier).text
|
324
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier).text"
|
310
325
|
end
|
311
326
|
|
312
327
|
#
|
@@ -314,9 +329,10 @@ module PageObject
|
|
314
329
|
# See PageObject::Accessors#div
|
315
330
|
#
|
316
331
|
def div_for(identifier)
|
332
|
+
frame_identifiers = identifier.delete(:frame)
|
317
333
|
identifier = add_tagname_if_needed identifier, "div"
|
318
334
|
identifier = Elements::Div.watir_identifier_for identifier
|
319
|
-
element = @browser.div(identifier)
|
335
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier)"
|
320
336
|
PageObject::Elements::Div.new(element, :platform => :watir)
|
321
337
|
end
|
322
338
|
|
@@ -325,9 +341,10 @@ module PageObject
|
|
325
341
|
# See PageObject::Accessors#span
|
326
342
|
#
|
327
343
|
def span_text_for(identifier)
|
344
|
+
frame_identifiers = identifier.delete(:frame)
|
328
345
|
identifier = add_tagname_if_needed identifier, "span"
|
329
346
|
identifier = Elements::Span.watir_identifier_for identifier
|
330
|
-
@browser.span(identifier).text
|
347
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier).text"
|
331
348
|
end
|
332
349
|
|
333
350
|
#
|
@@ -335,9 +352,10 @@ module PageObject
|
|
335
352
|
# See PageObject::Accessors#span
|
336
353
|
#
|
337
354
|
def span_for(identifier)
|
355
|
+
frame_identifiers = identifier.delete(:frame)
|
338
356
|
identifier = add_tagname_if_needed identifier, "span"
|
339
357
|
identifier = Elements::Span.watir_identifier_for identifier
|
340
|
-
element = @browser.span(identifier)
|
358
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier)"
|
341
359
|
PageObject::Elements::Span.new(element, :platform => :watir)
|
342
360
|
end
|
343
361
|
|
@@ -346,8 +364,9 @@ module PageObject
|
|
346
364
|
# See PageObject::Accessors#button
|
347
365
|
#
|
348
366
|
def click_button_for(identifier)
|
367
|
+
frame_identifiers = identifier.delete(:frame)
|
349
368
|
identifier = Elements::Button.watir_identifier_for identifier
|
350
|
-
@browser.button(identifier).click
|
369
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier).click"
|
351
370
|
end
|
352
371
|
|
353
372
|
#
|
@@ -355,8 +374,9 @@ module PageObject
|
|
355
374
|
# See PageObject::Accessors#button
|
356
375
|
#
|
357
376
|
def button_for(identifier)
|
377
|
+
frame_identifiers = identifier.delete(:frame)
|
358
378
|
identifier = Elements::Button.watir_identifier_for identifier
|
359
|
-
element = @browser.button(identifier)
|
379
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier)"
|
360
380
|
PageObject::Elements::Button.new(element, :platform => :watir)
|
361
381
|
end
|
362
382
|
|
@@ -365,9 +385,10 @@ module PageObject
|
|
365
385
|
# See PageObject::Accessors#table
|
366
386
|
#
|
367
387
|
def table_for(identifier)
|
388
|
+
frame_identifiers = identifier.delete(:frame)
|
368
389
|
identifier = add_tagname_if_needed identifier, "table"
|
369
390
|
identifier = Elements::Table.watir_identifier_for identifier.clone
|
370
|
-
element = @browser.table(identifier)
|
391
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}table(identifier)"
|
371
392
|
PageObject::Elements::Table.new(element, :platform => :watir)
|
372
393
|
end
|
373
394
|
|
@@ -376,9 +397,10 @@ module PageObject
|
|
376
397
|
# See PageObject::Accessors#cell
|
377
398
|
#
|
378
399
|
def cell_text_for(identifier)
|
400
|
+
frame_identifiers = identifier.delete(:frame)
|
379
401
|
identifier = add_tagname_if_needed identifier, "td"
|
380
402
|
identifier = Elements::TableCell.watir_identifier_for identifier
|
381
|
-
@browser.td(identifier).text
|
403
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier).text"
|
382
404
|
end
|
383
405
|
|
384
406
|
#
|
@@ -386,9 +408,10 @@ module PageObject
|
|
386
408
|
# See PageObject::Accessors#cell
|
387
409
|
#
|
388
410
|
def cell_for(identifier)
|
411
|
+
frame_identifiers = identifier.delete(:frame)
|
389
412
|
identifier = add_tagname_if_needed identifier, "td"
|
390
413
|
identifier = Elements::TableCell.watir_identifier_for identifier
|
391
|
-
element = @browser.td(identifier)
|
414
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier)"
|
392
415
|
PageObject::Elements::TableCell.new(element, :platform => :watir)
|
393
416
|
end
|
394
417
|
|
@@ -397,8 +420,9 @@ module PageObject
|
|
397
420
|
# See PageObject::Accessors#image
|
398
421
|
#
|
399
422
|
def image_for(identifier)
|
423
|
+
frame_identifiers = identifier.delete(:frame)
|
400
424
|
identifier = Elements::Image.watir_identifier_for identifier
|
401
|
-
element = @browser.image(identifier)
|
425
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}image(identifier)"
|
402
426
|
PageObject::Elements::Image.new(element, :platform => :watir)
|
403
427
|
end
|
404
428
|
|
@@ -407,8 +431,9 @@ module PageObject
|
|
407
431
|
# See PageObject::Accessors#form
|
408
432
|
#
|
409
433
|
def form_for(identifier)
|
434
|
+
frame_identifiers = identifier.delete(:frame)
|
410
435
|
identifier = Elements::Form.watir_identifier_for identifier
|
411
|
-
element = @browser.form(identifier)
|
436
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}form(identifier)"
|
412
437
|
PageObject::Elements::Form.new(element, :platform => :watir)
|
413
438
|
end
|
414
439
|
|
@@ -417,9 +442,10 @@ module PageObject
|
|
417
442
|
# See PageObject::Accessors#list_item
|
418
443
|
#
|
419
444
|
def list_item_text_for(identifier)
|
445
|
+
frame_identifiers = identifier.delete(:frame)
|
420
446
|
identifier = add_tagname_if_needed identifier, "li"
|
421
447
|
identifier = Elements::ListItem.watir_identifier_for identifier
|
422
|
-
@browser.li(identifier).text
|
448
|
+
@browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier).text"
|
423
449
|
end
|
424
450
|
|
425
451
|
#
|
@@ -427,9 +453,10 @@ module PageObject
|
|
427
453
|
# See PageObject::Accessors#list_item
|
428
454
|
#
|
429
455
|
def list_item_for(identifier)
|
456
|
+
frame_identifiers = identifier.delete(:frame)
|
430
457
|
identifier = add_tagname_if_needed identifier, "li"
|
431
458
|
identifier = Elements::ListItem.watir_identifier_for identifier
|
432
|
-
element = @browser.li(identifier)
|
459
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier)"
|
433
460
|
PageObject::Elements::ListItem.new(element, :platform => :watir)
|
434
461
|
end
|
435
462
|
|
@@ -438,9 +465,10 @@ module PageObject
|
|
438
465
|
# See PageObject::Accessors#unordered_list
|
439
466
|
#
|
440
467
|
def unordered_list_for(identifier)
|
468
|
+
frame_identifiers = identifier.delete(:frame)
|
441
469
|
identifier = add_tagname_if_needed identifier, "ul"
|
442
470
|
identifier = Elements::UnorderedList.watir_identifier_for identifier
|
443
|
-
element = @browser.ul(identifier)
|
471
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ul(identifier)"
|
444
472
|
PageObject::Elements::UnorderedList.new(element, :platform => :watir)
|
445
473
|
end
|
446
474
|
|
@@ -449,9 +477,10 @@ module PageObject
|
|
449
477
|
# See PageObject::Accessors#ordered_list
|
450
478
|
#
|
451
479
|
def ordered_list_for(identifier)
|
480
|
+
frame_identifiers = identifier.delete(:frame)
|
452
481
|
identifier = add_tagname_if_needed identifier, "ol"
|
453
482
|
identifier = Elements::OrderedList.watir_identifier_for identifier
|
454
|
-
element = @browser.ol(identifier)
|
483
|
+
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ol(identifier)"
|
455
484
|
PageObject::Elements::OrderedList.new(element, :platform => :watir)
|
456
485
|
end
|
457
486
|
|
@@ -462,5 +491,16 @@ module PageObject
|
|
462
491
|
identifier[:tag_name] = tag if identifier[:name]
|
463
492
|
identifier
|
464
493
|
end
|
494
|
+
|
495
|
+
def nested_frames(frame_identifiers)
|
496
|
+
return if frame_identifiers.nil?
|
497
|
+
frame_str = ''
|
498
|
+
frame_identifiers.each do |id|
|
499
|
+
value = id.values.first
|
500
|
+
frame_str += "frame(:#{id.keys.first} => #{value})." if value.to_s.is_integer
|
501
|
+
frame_str += "frame(:#{id.keys.first} => '#{value}')." unless value.to_s.is_integer
|
502
|
+
end
|
503
|
+
frame_str
|
504
|
+
end
|
465
505
|
end
|
466
506
|
end
|
data/lib/page-object/version.rb
CHANGED