page-object 0.4.3 → 0.4.4
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/.gitignore +1 -0
- data/ChangeLog +7 -0
- data/features/radio_button.feature +1 -0
- data/features/support/env.rb +1 -1
- data/features/support/page.rb +1 -0
- data/lib/page-object/accessors.rb +2 -1
- data/lib/page-object/elements/radio_button.rb +8 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1 -0
- data/lib/page-object/platforms/watir_webdriver/element.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +106 -35
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +2 -2
- data/spec/page-object/elements/radio_button_spec.rb +2 -2
- metadata +4 -4
data/.gitignore
CHANGED
data/ChangeLog
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
=== Version 0.4.4 / 2011-10-26
|
2
|
+
* Enhancements
|
3
|
+
* Can now find Radio buttons by value
|
4
|
+
* Updated to use selenium-webdriver 2.9.1
|
5
|
+
* Fixes
|
6
|
+
* Properly change context back to top level after interaction inside a frame with Watir
|
7
|
+
|
1
8
|
=== Version 0.4.3 / 2011-10-07
|
2
9
|
* Enhancements
|
3
10
|
* The new watir and selenium fix a fairly serious problem when working with modals and attaching to windows
|
data/features/support/env.rb
CHANGED
data/features/support/page.rb
CHANGED
@@ -73,6 +73,7 @@ class Page
|
|
73
73
|
radio_button(:milk_name, :name => 'milk_name')
|
74
74
|
radio_button(:milk_class, :class => 'milk_class')
|
75
75
|
radio_button(:milk_index, :index => 0)
|
76
|
+
radio_button(:milk_value, :value => 'Milk')
|
76
77
|
radio_button(:milk_xpath, :xpath => "//input[@type='radio']")
|
77
78
|
radio_button(:milk_class_index, :class => "milk_class", :index => 0)
|
78
79
|
radio_button(:milk_name_index, :name => "milk_name", :index => 0)
|
@@ -281,6 +281,7 @@ module PageObject
|
|
281
281
|
# * :id => Watir and Selenium
|
282
282
|
# * :index => Watir and Selenium
|
283
283
|
# * :name => Watir and Selenium
|
284
|
+
# * :value => Watir and Selenium
|
284
285
|
# * :xpath => Watir and Selenium
|
285
286
|
# @param optional block to be invoked when element method is called
|
286
287
|
#
|
@@ -760,7 +761,7 @@ module PageObject
|
|
760
761
|
# adds a method to retrieve the text of a paragraph and a paragraph element
|
761
762
|
#
|
762
763
|
# @example
|
763
|
-
#
|
764
|
+
# paragraph(:title, :id => 'title')
|
764
765
|
# # will generate a 'title' and 'title_element' method
|
765
766
|
#
|
766
767
|
# @param [String] the name used for the generated methods
|
@@ -772,6 +772,7 @@ module PageObject
|
|
772
772
|
return false if identifier[:href] and tag == 'a'
|
773
773
|
return false if identifier[:text] and ['div', 'span', 'td'].include? tag
|
774
774
|
return false if identifier[:value] and tag == 'input' and additional[:type] == 'submit'
|
775
|
+
return false if identifier[:value] and tag == 'input' and additional[:type] == 'radio'
|
775
776
|
true
|
776
777
|
end
|
777
778
|
|
@@ -144,7 +144,9 @@ module PageObject
|
|
144
144
|
#
|
145
145
|
def text_field_value_for(identifier)
|
146
146
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextField)
|
147
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).value"
|
147
|
+
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).value"
|
148
|
+
switch_to_default_content(frame_identifiers)
|
149
|
+
value
|
148
150
|
end
|
149
151
|
|
150
152
|
#
|
@@ -154,6 +156,7 @@ module PageObject
|
|
154
156
|
def text_field_value_set(identifier, value)
|
155
157
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextField)
|
156
158
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier).set(value)"
|
159
|
+
switch_to_default_content(frame_identifiers)
|
157
160
|
end
|
158
161
|
|
159
162
|
#
|
@@ -163,6 +166,7 @@ module PageObject
|
|
163
166
|
def text_field_for(identifier)
|
164
167
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextField)
|
165
168
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}text_field(identifier)"
|
169
|
+
switch_to_default_content(frame_identifiers)
|
166
170
|
Elements::TextField.new(element, :platform => :watir_webdriver)
|
167
171
|
end
|
168
172
|
|
@@ -172,7 +176,9 @@ module PageObject
|
|
172
176
|
#
|
173
177
|
def hidden_field_value_for(identifier)
|
174
178
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::HiddenField)
|
175
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier).value"
|
179
|
+
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier).value"
|
180
|
+
switch_to_default_content(frame_identifiers)
|
181
|
+
value
|
176
182
|
end
|
177
183
|
|
178
184
|
#
|
@@ -182,6 +188,7 @@ module PageObject
|
|
182
188
|
def hidden_field_for(identifier)
|
183
189
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::HiddenField)
|
184
190
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}hidden(identifier)"
|
191
|
+
switch_to_default_content(frame_identifiers)
|
185
192
|
Elements::HiddenField.new(element, :platform => :watir_webdriver)
|
186
193
|
end
|
187
194
|
|
@@ -192,6 +199,7 @@ module PageObject
|
|
192
199
|
def text_area_value_set(identifier, value)
|
193
200
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextArea)
|
194
201
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).send_keys(value)"
|
202
|
+
switch_to_default_content(frame_identifiers)
|
195
203
|
end
|
196
204
|
|
197
205
|
#
|
@@ -200,7 +208,9 @@ module PageObject
|
|
200
208
|
#
|
201
209
|
def text_area_value_for(identifier)
|
202
210
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextArea)
|
203
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).value"
|
211
|
+
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier).value"
|
212
|
+
switch_to_default_content(frame_identifiers)
|
213
|
+
value
|
204
214
|
end
|
205
215
|
|
206
216
|
#
|
@@ -210,6 +220,7 @@ module PageObject
|
|
210
220
|
def text_area_for(identifier)
|
211
221
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TextArea)
|
212
222
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}textarea(identifier)"
|
223
|
+
switch_to_default_content(frame_identifiers)
|
213
224
|
Elements::TextArea.new(element, :platform => :watir_webdriver)
|
214
225
|
end
|
215
226
|
|
@@ -219,7 +230,9 @@ module PageObject
|
|
219
230
|
#
|
220
231
|
def select_list_value_for(identifier)
|
221
232
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::SelectList)
|
222
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).value"
|
233
|
+
value = @browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).value"
|
234
|
+
switch_to_default_content(frame_identifiers)
|
235
|
+
value
|
223
236
|
end
|
224
237
|
|
225
238
|
#
|
@@ -229,6 +242,7 @@ module PageObject
|
|
229
242
|
def select_list_value_set(identifier, value)
|
230
243
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::SelectList)
|
231
244
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier).select(value)"
|
245
|
+
switch_to_default_content(frame_identifiers)
|
232
246
|
end
|
233
247
|
|
234
248
|
#
|
@@ -238,6 +252,7 @@ module PageObject
|
|
238
252
|
def select_list_for(identifier)
|
239
253
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::SelectList)
|
240
254
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}select_list(identifier)"
|
255
|
+
switch_to_default_content(frame_identifiers)
|
241
256
|
Elements::SelectList.new(element, :platform => :watir_webdriver)
|
242
257
|
end
|
243
258
|
|
@@ -248,6 +263,7 @@ module PageObject
|
|
248
263
|
def click_link_for(identifier)
|
249
264
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Link)
|
250
265
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}link(identifier).click if identifier"
|
266
|
+
switch_to_default_content(frame_identifiers)
|
251
267
|
end
|
252
268
|
|
253
269
|
#
|
@@ -257,6 +273,7 @@ module PageObject
|
|
257
273
|
def link_for(identifier)
|
258
274
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Link)
|
259
275
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}link(identifier)"
|
276
|
+
switch_to_default_content(frame_identifiers)
|
260
277
|
Elements::Link.new(element, :platform => :watir_webdriver)
|
261
278
|
end
|
262
279
|
|
@@ -267,6 +284,7 @@ module PageObject
|
|
267
284
|
def check_checkbox(identifier)
|
268
285
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
269
286
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set"
|
287
|
+
switch_to_default_content(frame_identifiers)
|
270
288
|
end
|
271
289
|
|
272
290
|
#
|
@@ -276,6 +294,7 @@ module PageObject
|
|
276
294
|
def uncheck_checkbox(identifier)
|
277
295
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
278
296
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).clear"
|
297
|
+
switch_to_default_content(frame_identifiers)
|
279
298
|
end
|
280
299
|
|
281
300
|
#
|
@@ -284,7 +303,9 @@ module PageObject
|
|
284
303
|
#
|
285
304
|
def checkbox_checked?(identifier)
|
286
305
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
287
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set?"
|
306
|
+
result = @browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier).set?"
|
307
|
+
switch_to_default_content(frame_identifiers)
|
308
|
+
result
|
288
309
|
end
|
289
310
|
|
290
311
|
#
|
@@ -294,6 +315,7 @@ module PageObject
|
|
294
315
|
def checkbox_for(identifier)
|
295
316
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::CheckBox)
|
296
317
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}checkbox(identifier)"
|
318
|
+
switch_to_default_content(frame_identifiers)
|
297
319
|
Elements::CheckBox.new(element, :platform => :watir_webdriver)
|
298
320
|
end
|
299
321
|
|
@@ -304,6 +326,7 @@ module PageObject
|
|
304
326
|
def select_radio(identifier)
|
305
327
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
306
328
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set"
|
329
|
+
switch_to_default_content(frame_identifiers)
|
307
330
|
end
|
308
331
|
|
309
332
|
#
|
@@ -313,6 +336,7 @@ module PageObject
|
|
313
336
|
def clear_radio(identifier)
|
314
337
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
315
338
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).clear"
|
339
|
+
switch_to_default_content(frame_identifiers)
|
316
340
|
end
|
317
341
|
|
318
342
|
#
|
@@ -321,7 +345,9 @@ module PageObject
|
|
321
345
|
#
|
322
346
|
def radio_selected?(identifier)
|
323
347
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
324
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set?"
|
348
|
+
result = @browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier).set?"
|
349
|
+
switch_to_default_content(frame_identifiers)
|
350
|
+
result
|
325
351
|
end
|
326
352
|
|
327
353
|
#
|
@@ -331,7 +357,8 @@ module PageObject
|
|
331
357
|
def radio_button_for(identifier)
|
332
358
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::RadioButton)
|
333
359
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}radio(identifier)"
|
334
|
-
|
360
|
+
switch_to_default_content(frame_identifiers)
|
361
|
+
::PageObject::Elements::RadioButton.new(element, :platform => :watir_webdriver)
|
335
362
|
end
|
336
363
|
|
337
364
|
#
|
@@ -340,7 +367,9 @@ module PageObject
|
|
340
367
|
#
|
341
368
|
def div_text_for(identifier)
|
342
369
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Div, 'div')
|
343
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier).text"
|
370
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier).text"
|
371
|
+
switch_to_default_content(frame_identifiers)
|
372
|
+
text
|
344
373
|
end
|
345
374
|
|
346
375
|
#
|
@@ -350,7 +379,8 @@ module PageObject
|
|
350
379
|
def div_for(identifier)
|
351
380
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Div, 'div')
|
352
381
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}div(identifier)"
|
353
|
-
|
382
|
+
switch_to_default_content(frame_identifiers)
|
383
|
+
::PageObject::Elements::Div.new(element, :platform => :watir_webdriver)
|
354
384
|
end
|
355
385
|
|
356
386
|
#
|
@@ -359,7 +389,9 @@ module PageObject
|
|
359
389
|
#
|
360
390
|
def span_text_for(identifier)
|
361
391
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Span, 'span')
|
362
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier).text"
|
392
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier).text"
|
393
|
+
switch_to_default_content(frame_identifiers)
|
394
|
+
text
|
363
395
|
end
|
364
396
|
|
365
397
|
#
|
@@ -369,7 +401,8 @@ module PageObject
|
|
369
401
|
def span_for(identifier)
|
370
402
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Span, 'span')
|
371
403
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}span(identifier)"
|
372
|
-
|
404
|
+
switch_to_default_content(frame_identifiers)
|
405
|
+
::PageObject::Elements::Span.new(element, :platform => :watir_webdriver)
|
373
406
|
end
|
374
407
|
|
375
408
|
#
|
@@ -379,6 +412,7 @@ module PageObject
|
|
379
412
|
def click_button_for(identifier)
|
380
413
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Button)
|
381
414
|
@browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier).click"
|
415
|
+
switch_to_default_content(frame_identifiers)
|
382
416
|
end
|
383
417
|
|
384
418
|
#
|
@@ -388,7 +422,8 @@ module PageObject
|
|
388
422
|
def button_for(identifier)
|
389
423
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Button)
|
390
424
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}button(identifier)"
|
391
|
-
|
425
|
+
switch_to_default_content(frame_identifiers)
|
426
|
+
::PageObject::Elements::Button.new(element, :platform => :watir_webdriver)
|
392
427
|
end
|
393
428
|
|
394
429
|
#
|
@@ -398,7 +433,8 @@ module PageObject
|
|
398
433
|
def table_for(identifier)
|
399
434
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Table, 'table')
|
400
435
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}table(identifier)"
|
401
|
-
|
436
|
+
switch_to_default_content(frame_identifiers)
|
437
|
+
::PageObject::Elements::Table.new(element, :platform => :watir_webdriver)
|
402
438
|
end
|
403
439
|
|
404
440
|
#
|
@@ -407,7 +443,9 @@ module PageObject
|
|
407
443
|
#
|
408
444
|
def cell_text_for(identifier)
|
409
445
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TableCell, 'td')
|
410
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier).text"
|
446
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier).text"
|
447
|
+
switch_to_default_content(frame_identifiers)
|
448
|
+
text
|
411
449
|
end
|
412
450
|
|
413
451
|
#
|
@@ -417,7 +455,8 @@ module PageObject
|
|
417
455
|
def cell_for(identifier)
|
418
456
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::TableCell, 'td')
|
419
457
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}td(identifier)"
|
420
|
-
|
458
|
+
switch_to_default_content(frame_identifiers)
|
459
|
+
::PageObject::Elements::TableCell.new(element, :platform => :watir_webdriver)
|
421
460
|
end
|
422
461
|
|
423
462
|
#
|
@@ -427,7 +466,8 @@ module PageObject
|
|
427
466
|
def image_for(identifier)
|
428
467
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Image)
|
429
468
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}image(identifier)"
|
430
|
-
|
469
|
+
switch_to_default_content(frame_identifiers)
|
470
|
+
::PageObject::Elements::Image.new(element, :platform => :watir_webdriver)
|
431
471
|
end
|
432
472
|
|
433
473
|
#
|
@@ -437,7 +477,8 @@ module PageObject
|
|
437
477
|
def form_for(identifier)
|
438
478
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Form)
|
439
479
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}form(identifier)"
|
440
|
-
|
480
|
+
switch_to_default_content(frame_identifiers)
|
481
|
+
::PageObject::Elements::Form.new(element, :platform => :watir_webdriver)
|
441
482
|
end
|
442
483
|
|
443
484
|
#
|
@@ -446,7 +487,9 @@ module PageObject
|
|
446
487
|
#
|
447
488
|
def list_item_text_for(identifier)
|
448
489
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::ListItem, 'li')
|
449
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier).text"
|
490
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier).text"
|
491
|
+
switch_to_default_content(frame_identifiers)
|
492
|
+
text
|
450
493
|
end
|
451
494
|
|
452
495
|
#
|
@@ -456,7 +499,8 @@ module PageObject
|
|
456
499
|
def list_item_for(identifier)
|
457
500
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::ListItem, 'li')
|
458
501
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}li(identifier)"
|
459
|
-
|
502
|
+
switch_to_default_content(frame_identifiers)
|
503
|
+
::PageObject::Elements::ListItem.new(element, :platform => :watir_webdriver)
|
460
504
|
end
|
461
505
|
|
462
506
|
#
|
@@ -466,7 +510,8 @@ module PageObject
|
|
466
510
|
def unordered_list_for(identifier)
|
467
511
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::UnorderedList, 'ul')
|
468
512
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ul(identifier)"
|
469
|
-
|
513
|
+
switch_to_default_content(frame_identifiers)
|
514
|
+
::PageObject::Elements::UnorderedList.new(element, :platform => :watir_webdriver)
|
470
515
|
end
|
471
516
|
|
472
517
|
#
|
@@ -476,7 +521,8 @@ module PageObject
|
|
476
521
|
def ordered_list_for(identifier)
|
477
522
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::OrderedList, 'ol')
|
478
523
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}ol(identifier)"
|
479
|
-
|
524
|
+
switch_to_default_content(frame_identifiers)
|
525
|
+
::PageObject::Elements::OrderedList.new(element, :platform => :watir_webdriver)
|
480
526
|
end
|
481
527
|
|
482
528
|
#
|
@@ -485,7 +531,9 @@ module PageObject
|
|
485
531
|
#
|
486
532
|
def h1_text_for(identifier)
|
487
533
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h1')
|
488
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}h1(identifier).text"
|
534
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h1(identifier).text"
|
535
|
+
switch_to_default_content(frame_identifiers)
|
536
|
+
text
|
489
537
|
end
|
490
538
|
|
491
539
|
#
|
@@ -495,7 +543,8 @@ module PageObject
|
|
495
543
|
def h1_for(identifier)
|
496
544
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h1')
|
497
545
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h1(identifier)"
|
498
|
-
|
546
|
+
switch_to_default_content(frame_identifiers)
|
547
|
+
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
499
548
|
end
|
500
549
|
|
501
550
|
#
|
@@ -504,7 +553,9 @@ module PageObject
|
|
504
553
|
#
|
505
554
|
def h2_text_for(identifier)
|
506
555
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h2')
|
507
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}h2(identifier).text"
|
556
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h2(identifier).text"
|
557
|
+
switch_to_default_content(frame_identifiers)
|
558
|
+
text
|
508
559
|
end
|
509
560
|
|
510
561
|
#
|
@@ -514,7 +565,8 @@ module PageObject
|
|
514
565
|
def h2_for(identifier)
|
515
566
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h2')
|
516
567
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h2(identifier)"
|
517
|
-
|
568
|
+
switch_to_default_content(frame_identifiers)
|
569
|
+
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
518
570
|
end
|
519
571
|
|
520
572
|
#
|
@@ -523,7 +575,9 @@ module PageObject
|
|
523
575
|
#
|
524
576
|
def h3_text_for(identifier)
|
525
577
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h3')
|
526
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}h3(identifier).text"
|
578
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h3(identifier).text"
|
579
|
+
switch_to_default_content(frame_identifiers)
|
580
|
+
text
|
527
581
|
end
|
528
582
|
|
529
583
|
#
|
@@ -533,7 +587,8 @@ module PageObject
|
|
533
587
|
def h3_for(identifier)
|
534
588
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h3')
|
535
589
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h3(identifier)"
|
536
|
-
|
590
|
+
switch_to_default_content(frame_identifiers)
|
591
|
+
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
537
592
|
end
|
538
593
|
|
539
594
|
#
|
@@ -542,7 +597,9 @@ module PageObject
|
|
542
597
|
#
|
543
598
|
def h4_text_for(identifier)
|
544
599
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h4')
|
545
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}h4(identifier).text"
|
600
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h4(identifier).text"
|
601
|
+
switch_to_default_content(frame_identifiers)
|
602
|
+
text
|
546
603
|
end
|
547
604
|
|
548
605
|
#
|
@@ -552,7 +609,8 @@ module PageObject
|
|
552
609
|
def h4_for(identifier)
|
553
610
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h4')
|
554
611
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h4(identifier)"
|
555
|
-
|
612
|
+
switch_to_default_content(frame_identifiers)
|
613
|
+
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
556
614
|
end
|
557
615
|
|
558
616
|
#
|
@@ -561,7 +619,9 @@ module PageObject
|
|
561
619
|
#
|
562
620
|
def h5_text_for(identifier)
|
563
621
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h5')
|
564
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}h5(identifier).text"
|
622
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h5(identifier).text"
|
623
|
+
switch_to_default_content(frame_identifiers)
|
624
|
+
text
|
565
625
|
end
|
566
626
|
|
567
627
|
#
|
@@ -571,7 +631,8 @@ module PageObject
|
|
571
631
|
def h5_for(identifier)
|
572
632
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h5')
|
573
633
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h5(identifier)"
|
574
|
-
|
634
|
+
switch_to_default_content(frame_identifiers)
|
635
|
+
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
575
636
|
end
|
576
637
|
|
577
638
|
#
|
@@ -580,7 +641,9 @@ module PageObject
|
|
580
641
|
#
|
581
642
|
def h6_text_for(identifier)
|
582
643
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h6')
|
583
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}h6(identifier).text"
|
644
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}h6(identifier).text"
|
645
|
+
switch_to_default_content(frame_identifiers)
|
646
|
+
text
|
584
647
|
end
|
585
648
|
|
586
649
|
#
|
@@ -590,7 +653,8 @@ module PageObject
|
|
590
653
|
def h6_for(identifier)
|
591
654
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'h6')
|
592
655
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}h6(identifier)"
|
593
|
-
|
656
|
+
switch_to_default_content(frame_identifiers)
|
657
|
+
::PageObject::Elements::Heading.new(element, :platform => :watir_webdriver)
|
594
658
|
end
|
595
659
|
|
596
660
|
#
|
@@ -599,7 +663,9 @@ module PageObject
|
|
599
663
|
#
|
600
664
|
def paragraph_text_for(identifier)
|
601
665
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'p')
|
602
|
-
@browser.instance_eval "#{nested_frames(frame_identifiers)}p(identifier).text"
|
666
|
+
text = @browser.instance_eval "#{nested_frames(frame_identifiers)}p(identifier).text"
|
667
|
+
switch_to_default_content(frame_identifiers)
|
668
|
+
text
|
603
669
|
end
|
604
670
|
|
605
671
|
#
|
@@ -609,7 +675,8 @@ module PageObject
|
|
609
675
|
def paragraph_for(identifier)
|
610
676
|
identifier, frame_identifiers = parse_identifiers(identifier, Elements::Heading, 'p')
|
611
677
|
element = @browser.instance_eval "#{nested_frames(frame_identifiers)}p(identifier)"
|
612
|
-
|
678
|
+
switch_to_default_content(frame_identifiers)
|
679
|
+
::PageObject::Elements::Paragraph.new(element, :platform => :watir_webdriver)
|
613
680
|
end
|
614
681
|
|
615
682
|
private
|
@@ -637,6 +704,10 @@ module PageObject
|
|
637
704
|
end
|
638
705
|
frame_str
|
639
706
|
end
|
707
|
+
|
708
|
+
def switch_to_default_content(frame_identifiers)
|
709
|
+
@browser.wd.switch_to.default_content unless frame_identifiers.nil?
|
710
|
+
end
|
640
711
|
end
|
641
712
|
end
|
642
713
|
end
|
data/lib/page-object/version.rb
CHANGED
data/page-object.gemspec
CHANGED
@@ -20,11 +20,11 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
22
|
s.add_dependency 'watir-webdriver', '>= 0.3.5'
|
23
|
-
s.add_dependency 'selenium-webdriver', '>= 2.
|
23
|
+
s.add_dependency 'selenium-webdriver', '>= 2.9.1'
|
24
24
|
s.add_dependency 'mixology'
|
25
25
|
|
26
26
|
s.add_development_dependency 'rspec', '>= 2.6.0'
|
27
|
-
s.add_development_dependency 'cucumber', '>= 1.
|
27
|
+
s.add_development_dependency 'cucumber', '>= 1.1.0'
|
28
28
|
s.add_development_dependency 'yard', '>= 0.7.2'
|
29
29
|
|
30
30
|
end
|
@@ -6,13 +6,13 @@ describe PageObject::Elements::RadioButton do
|
|
6
6
|
|
7
7
|
describe "when mapping how to find an element" do
|
8
8
|
it "should map watir types to same" do
|
9
|
-
[:class, :id, :index, :name, :xpath].each do |t|
|
9
|
+
[:class, :id, :index, :name, :value, :xpath].each do |t|
|
10
10
|
identifier = radiobutton.watir_identifier_for t => 'value'
|
11
11
|
identifier.keys.first.should == t
|
12
12
|
end
|
13
13
|
end
|
14
14
|
it "should map selenium types to same" do
|
15
|
-
[:class, :id, :name, :xpath, :index].each do |t|
|
15
|
+
[:class, :id, :name, :xpath, :value, :index].each do |t|
|
16
16
|
key, value = radiobutton.selenium_identifier_for t => 'value'
|
17
17
|
key.should == t
|
18
18
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: page-object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jeff Morgan
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-10-
|
13
|
+
date: 2011-10-26 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: watir-webdriver
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 2.
|
34
|
+
version: 2.9.1
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 1.
|
67
|
+
version: 1.1.0
|
68
68
|
type: :development
|
69
69
|
version_requirements: *id005
|
70
70
|
- !ruby/object:Gem::Dependency
|