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