centric_page_object 2.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +8 -0
  4. data/.rspec +2 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +17 -0
  8. data/ChangeLog +931 -0
  9. data/Gemfile +12 -0
  10. data/Guardfile +20 -0
  11. data/LICENSE +20 -0
  12. data/README.md +114 -0
  13. data/Rakefile +29 -0
  14. data/centric_page_object.gemspec +31 -0
  15. data/cucumber.yml +8 -0
  16. data/lib/page-object/accessors.rb +1201 -0
  17. data/lib/page-object/element_locators.rb +21 -0
  18. data/lib/page-object/elements/area.rb +9 -0
  19. data/lib/page-object/elements/audio.rb +9 -0
  20. data/lib/page-object/elements/bold.rb +9 -0
  21. data/lib/page-object/elements/button.rb +12 -0
  22. data/lib/page-object/elements/canvas.rb +10 -0
  23. data/lib/page-object/elements/check_box.rb +9 -0
  24. data/lib/page-object/elements/date_field.rb +10 -0
  25. data/lib/page-object/elements/div.rb +9 -0
  26. data/lib/page-object/elements/element.rb +212 -0
  27. data/lib/page-object/elements/file_field.rb +9 -0
  28. data/lib/page-object/elements/form.rb +9 -0
  29. data/lib/page-object/elements/heading.rb +14 -0
  30. data/lib/page-object/elements/hidden_field.rb +9 -0
  31. data/lib/page-object/elements/image.rb +10 -0
  32. data/lib/page-object/elements/italic.rb +9 -0
  33. data/lib/page-object/elements/label.rb +9 -0
  34. data/lib/page-object/elements/link.rb +9 -0
  35. data/lib/page-object/elements/list_item.rb +9 -0
  36. data/lib/page-object/elements/media.rb +11 -0
  37. data/lib/page-object/elements/option.rb +9 -0
  38. data/lib/page-object/elements/ordered_list.rb +43 -0
  39. data/lib/page-object/elements/paragraph.rb +9 -0
  40. data/lib/page-object/elements/radio_button.rb +9 -0
  41. data/lib/page-object/elements/select_list.rb +42 -0
  42. data/lib/page-object/elements/span.rb +9 -0
  43. data/lib/page-object/elements/table.rb +85 -0
  44. data/lib/page-object/elements/table_cell.rb +10 -0
  45. data/lib/page-object/elements/table_row.rb +52 -0
  46. data/lib/page-object/elements/text_area.rb +9 -0
  47. data/lib/page-object/elements/text_field.rb +10 -0
  48. data/lib/page-object/elements/unordered_list.rb +42 -0
  49. data/lib/page-object/elements/video.rb +9 -0
  50. data/lib/page-object/elements.rb +62 -0
  51. data/lib/page-object/indexed_properties.rb +41 -0
  52. data/lib/page-object/javascript/angularjs.rb +14 -0
  53. data/lib/page-object/javascript/jquery.rb +14 -0
  54. data/lib/page-object/javascript/prototype.rb +14 -0
  55. data/lib/page-object/javascript/yui.rb +19 -0
  56. data/lib/page-object/javascript_framework_facade.rb +80 -0
  57. data/lib/page-object/locator_generator.rb +183 -0
  58. data/lib/page-object/nested_elements.rb +17 -0
  59. data/lib/page-object/page_factory.rb +108 -0
  60. data/lib/page-object/page_populator.rb +105 -0
  61. data/lib/page-object/platforms/watir/page_object.rb +1155 -0
  62. data/lib/page-object/platforms/watir.rb +50 -0
  63. data/lib/page-object/section_collection.rb +16 -0
  64. data/lib/page-object/version.rb +4 -0
  65. data/lib/page-object/widgets.rb +98 -0
  66. data/lib/page-object.rb +431 -0
  67. data/pageobject.gems +1 -0
  68. metadata +239 -0
data/ChangeLog ADDED
@@ -0,0 +1,931 @@
1
+ Version 2.3.1 / 2022/05/2011
2
+ * Updated to use the centric_page_navigation 0.12+ cascade dependency on centric_data_magic
3
+
4
+ Version 2.3.1 / 2021/03/19
5
+ * Fixes
6
+ * Removed dependency on Selenium-WebDriver v3
7
+
8
+ Version 2.3.0 / 2021/03/03
9
+ * Enhancements
10
+ * Added a date_field accessor
11
+ * Fixes
12
+ * Fixed PageObject#present? when using with ActiveSupport (Thanks Stephen Turley)
13
+ * Fixed exception when method does not exist
14
+ * Fixed locating iframes by :visible (Thanks Joseph A. Ours)
15
+
16
+ Version 2.2.6 / 2019/03/18
17
+ * Fixes
18
+ * Fixed deprecation warning in populate_page_with (#467)
19
+ * Fixed passing PageObject::Elements::Element to drag_and_drop_on (#422)
20
+
21
+ Version 2.2.5 / 2018/11/21
22
+ * Enhancements
23
+ * populate_page_with will work with anything that can be converted to a Hash (Thanks Titus Fortner)
24
+ * Fixes
25
+ * Fixed present? when using with ActiveSupport (Thanks Justin Ko)
26
+ * Fixed issues with when_visible and when_not_visible (Thanks Justin Ko)
27
+
28
+ Version 2.2.4 / 2017-9-23
29
+ * Enhancements
30
+ * Added the ability to get the values of a table column (Thanks sanvijay)
31
+ * Added the ability to populate sections with a nested entry from data_magic
32
+
33
+ Version 2.2.3 / 2017-8-30
34
+ * Enhancements
35
+ * Added the preceding_sibling method to Element
36
+ * Added the following_sibling method to Element
37
+ * Added the siblings method to Element
38
+ * Added the children method to Element
39
+ * Added the preceding_siblings method to Element
40
+ * Added the following_siblings method to Element
41
+ * Fixes
42
+ * Fixed issue that occurred when things were moved around in Watir 6.8
43
+
44
+ Version 2.2.2 / 2017-8-25
45
+ * Fixes
46
+ * Fixed issue when using text for table index with special characters (Thanks Jason Phebus)
47
+
48
+ Version 2.2.1 / 2017-8-22
49
+ * Enhancements
50
+ * Moved some functionality from PageObject to Watir (Thanks Titus Fortner)
51
+ * Fixes
52
+ * Fixed bug when selection option by text with populate_page_with (Thanks Jason Phebus)
53
+ * Fixed issue with wrapping the Selenium driver with Watir (Thanks Titus Fortner)
54
+
55
+ Version 2.2 / 2017-7-4
56
+ * Enhancements
57
+ * when_visible and when_not_visible now wait for element to be present before checking
58
+ * populate_page_with can populate select_list using values (Thanks vveliev)
59
+ * Removed all custom locator mappings
60
+ * Removed platform loading
61
+ * Fixes
62
+ * Moved net-http-persistent to a development dependency
63
+ * Fixed issue with frames, sections, and indexed properties
64
+ * Fixed issue impacting rspec be_visible/be_present DSL
65
+ * Fixed issue with getting content of empty multi-select
66
+
67
+ Version 2.1.1 / 2017-3-7
68
+ * Fixes
69
+ * Fixed issue with import ordering
70
+
71
+ Version 2.1 / 2017-3-6
72
+ This is the first of three quick releases that will undo a lot of
73
+ legacy code and end with a far more flexible gem.
74
+ * Enhancements
75
+ * Removed Selenium Platform.
76
+ Still support Selenium driver by wrapping it with a Watir browser.
77
+ * Added ability to locate indexed element by regex (Thanks Sean MacGahan)
78
+ * Removed all direct delegates. Now relies on method_missing to call Watir methods.
79
+ - You may have to change RSpec matchers to use method instead of predicate.
80
+
81
+ Version 2.0.0 / 2016-11-22
82
+ * Enhancements
83
+ * Added focused? method on element. (Thanks Joe Schulte)
84
+ * Updated to use Watir 6 instead of Watir-Webdriver (Thanks Robert MacCracken)
85
+ This change requires updates to your project. You will need to update your
86
+ Gemfile to use 'watir' instead of 'watir-webdriver' and you will need to
87
+ update any require statement you might have. Also, Watir 6 is more strick
88
+ with text_field and text_area. You will have to use the proper one or it
89
+ will not locate the element.
90
+
91
+ Version 1.2.2 / 2016-11-17
92
+ * Fixes
93
+ * Fixed a bug that was introduced in the latest release
94
+
95
+ Version 1.2.1 / 2016-11-11
96
+ * Enhancements
97
+ * Added numerous missing element types
98
+ * Support for Selenium 3 (Thanks Titus Fortner)
99
+ * Added new generated method for Image - (name)_loaded? (Thanks joesho112358)
100
+ * Added CSS support for Watir (Thanks Titus Fortner)
101
+ * Added two new methods that check without throwing exception
102
+ - check_visible
103
+ - check_exists
104
+
105
+ Version 1.2.0 / 2016-6-15
106
+ * Enhancements
107
+ * Added array methods to section collections (Thanks Cohen Carlisle)
108
+ * Ensuring that method_missing is always forwarded to the root element (Thanks Cohen Carlisle)
109
+ * Added ability to call style method with no parameters (Thanks Justin Watts)
110
+ - with Watir will return all styles; with Selenium will return empty string
111
+ * Cleaned up frame and iframe nesting (Thanks Jon Snow)
112
+ * Support for adding other platforms (Thanks pvmeerbe)
113
+
114
+ === Version 1.1.1 / 2016-1-7
115
+ * Enhancements
116
+ * Added row accessor method and support for finding row elements directly (Thanks Ethan Hedrick)
117
+ * Added list_items method to UnorderedList to get an array of children.
118
+ * Speed optimizations for UnorderedList
119
+ * Added list_items method to OrderedList to get an array of children.
120
+ * Speed optimizations for OrderedList
121
+ * Added ability to check if a section is visible?, present?, or exists? (Thanks Donavan Stanley)
122
+ * Added support for the Italic (i) element (Thanks Sergey Morozov)
123
+ * Added size and location methods to all elements (Thanks Steve Jackson)
124
+ * Added width, height, and centre methods for elements (Thanks David Selby)
125
+ * Added missing right_click method for watir (Thanks David Selby)
126
+
127
+ === Version 1.1.0 / 2015-5-2
128
+ * Enhancements
129
+ * Performance enhancements when initializing elements (Thanks Alexis Andersen)
130
+ * Enabled button elements to return text when using selenium-webdriver.
131
+ * Added support for :index identifier in indexed properties.
132
+ * Added page_section and page_sections accessor methods which can specify a page object of elements on another page object.
133
+ * Fixes
134
+ * Fixed issue causing exceptions when comparing equality of element to non-element objects.
135
+ * Fixed issue that causes indexed properties to return the same value for any index.
136
+
137
+ === Version 1.0.3 / 2014-12-9
138
+ * Enhancements
139
+ * Added support for the bold tag (Thanks sedx)
140
+ * Added support for angularjs in wait_for_ajax (Thanks Owen Housden)
141
+ * Added hashes method to Table to return table contents as a Hash (Thanks Tobi)
142
+ * Fixed wait_for_expected_title so it detects if the title changes (Thanks Levi Wilson)
143
+ * Fixes
144
+ * Fixed issue that allows access to elements on other indexed properties (Thanks Alexis Andersen)
145
+ * Removed the method to clear radio buttons. It didn't work on selenium and threw an exception on watir. (Thanks Justin Ko)
146
+
147
+ === Version 1.0.2 / 2014-7-21
148
+ * Enhancements
149
+ * Added support to use multiple identifiers when locating nested frames / iframes (Thanks Justin Ko)
150
+ * Fixes
151
+ * Reverted the method name check due to unintended consequences
152
+
153
+ === Version 1.0.1 / 2014-7-19
154
+ * Enhancements
155
+ * Checks the name of generated methods to ensure they do not colide with existing page-object methods
156
+ * Removed old legacy css code and now delegate everything to Watir
157
+ * Fixes
158
+ * Added support for dynamically finding elements inside iframes (Thanks Justin Ko)
159
+
160
+ === Version 1.0 / 2014-6-1
161
+ * Enhancements
162
+ * Better support for using Regexp
163
+ * Added new page_url_value method that is created when you define page_url to return the value
164
+ * Added better error message when nil is passed to the constructor of a PageObject
165
+ * Updated to use the latest watir-webdriver 0.6.9
166
+ * Updated to use the latest selenium-webdriver 2.42.0
167
+ * Fixes
168
+ * Improved handling of index locator
169
+
170
+ === Version 0.9.8 / 2014-3-16
171
+ * Enhancements
172
+ * populate_page_with not supports radio groups
173
+
174
+ === Version 0.9.7 / 2014-2-26
175
+ * Enhancements
176
+ * Table now supports exists?
177
+ * super called when factory method invoked with non PageObject class
178
+ * Updated to use the latest watir-webdriver 0.6.8
179
+ * Updated to use the latest selenium-webdriver 2.40.0
180
+
181
+ === Version 0.9.6 / 2014-2-4
182
+ * Enhancements
183
+ * Updated to use the latest watir-webdriver 0.6.7
184
+ * Fixes
185
+ * Added in_iframe methods to match the updates to the watir-webdriver gem.
186
+
187
+ === Version 0.9.5 / 2014-1-22
188
+ * Enhancements
189
+ * Updated to use the latest selenium-webdriver 2.39.0
190
+ * Added href method to Link
191
+ * Added generation of plural version of basic types on class
192
+ * Added new accessors for radio button group (Thanks Travis Fillmore)
193
+
194
+ === Version 0.9.4 / 2013-11-29
195
+ * Enhancements
196
+ * Added ability for execute_scripts to accept arguments (Thanks Justin Ko)
197
+ * Added ability to identify frame using a regular expression when using Watir
198
+
199
+ === Version 0.9.3 / 2013-10-24
200
+ * Enhancements
201
+ * Added class_name method to Element
202
+ * Added select_text method to Element
203
+ * Added wait_for_expected_title and expected_element_visible methods (Thanks smartkiwi)
204
+ * Updated to use the latest selenium-webdriver 2.37.0
205
+ * Fixes
206
+ * Fixed issue with custom widgets on Ruby 1.8.7 (Thanks X Zhang)
207
+
208
+ === Version 0.9.2 / 2013-8-23
209
+ * Enhancements
210
+ * Added elements method to accessor so one can gen methods for generic collections of elements
211
+ * Updated to use the latest selenium-webdriver 2.35.0
212
+
213
+ === Version 0.9.1 / 2013-7-16
214
+ * Enhancements
215
+ * Added css locator support for Image (Thanks Elben Shira)
216
+ * Fixes
217
+ * Corrected isse with generated method in widgets module
218
+
219
+ === Version 0.9.0 / 2013-6-11
220
+ * Enhancements
221
+ * Added plural _elements methods for the following types:
222
+ * area
223
+ * canvas
224
+ * audio
225
+ * video
226
+ * svg
227
+ * Added basic element support for the following types:
228
+ * as
229
+ * blockquote
230
+ * body
231
+ * br
232
+ * caption
233
+ * col
234
+ * colgroup
235
+ * command
236
+ * data
237
+ * datalist
238
+ * del
239
+ * details
240
+ * dialog
241
+ * dl
242
+ * embed
243
+ * fieldset
244
+ * head
245
+ * hr
246
+ * ins
247
+ * keygen
248
+ * legend
249
+ * map
250
+ * menu
251
+ * meta
252
+ * meter
253
+ * object
254
+ * optgroup
255
+ * output
256
+ * param
257
+ * pre
258
+ * progress
259
+ * small
260
+ * strong
261
+ * style
262
+ * time
263
+ * title
264
+ * track
265
+ * Updated to use the latest selenium-webdriver 2.33.0
266
+ * Fixes
267
+ * Fixed issue when using the page and element accessors for html 5 elements.
268
+
269
+ === Version 0.8.10 / 2013-5-3
270
+ * Enhancements
271
+ * Updated populate_page_with to also check if the element is visible prior to setting value
272
+ * Updated to use the latest watir-webdriver 0.6.4
273
+
274
+ === Version 0.8.9 / 2013-4-13
275
+ * Enhancements
276
+ * Updated to use the latest watir-webdriver 0.6.3
277
+ * Updated to use the latest selenium-webdriver 2.32.1
278
+ * Fixes
279
+ * Fixed an issue when you try to find an element using no identifier (Thanks Alex Rodionov)
280
+
281
+ === Version 0.8.8 / 2013-4-5
282
+ * Enhancements
283
+ * Added callback to widget classes to allow them to define their own accessors
284
+ * Added more support for using css when locating elements using Watir-webdriver (Neal Lindsay)
285
+
286
+ === Version 0.8.7 / 2013-3-31
287
+ * Enhancements
288
+ * Added ability to find elements using any valid attribute
289
+
290
+ === Version 0.8.6.1 / 2013-3-4
291
+ * Enhancements
292
+ * Added lable locators for checkbox, text area, select list, radio button and file field (Thanks Alex Rodionov)
293
+ * Updated to use the latest selenium-webdriver 2.31.0
294
+ * Updated to use the latest page_navigation 0.7
295
+
296
+ === Version 0.8.6 / 2013-2-27
297
+ * Enhancements
298
+ * Added support for the svg element
299
+ * Fixes
300
+ * Fixed issue with nested generic element calls
301
+
302
+ === Version 0.8.5 / 2013-2-21
303
+ * Enhancements
304
+ * Updated to use the latest selenium-webdriver 2.30 - support for Firefox 19
305
+
306
+ === Version 0.8.4 / 2013-1-26
307
+ * Enhancements
308
+ * Extracted navigational methods into new gem named page_navigation
309
+
310
+ === Version 0.8.3 / 2013-1-22
311
+ * Enhancements
312
+ * Updated to use the latest selenium-webdriver 2.29
313
+ * Added :using_params parameter to both on_page and if_page methods
314
+ * Fixes
315
+ * Fixed issue where has_expected_title? displays misleading error message (X Zhang)
316
+ * Fixed issue when getting basic Element element when using Selenium
317
+ * Fixed issue when using plural class methods multiple times on same object
318
+
319
+ === Version 0.8.2 / 2013-1-13
320
+ * Enhancements
321
+ * Updated expected_element to ue the global default element wait by default
322
+ * Updated routes to accept more than two entries in the array which are passed as arguments
323
+ * Added new generated method for select_list to return options -> <name>_options (X Zhang)
324
+ * Added scroll_into_view method to Element
325
+ * Added *_element and *_elements methods to PageObject and Element for the following types
326
+ * addr
327
+ * address
328
+ * article
329
+ * aside
330
+ * bdi
331
+ * bdo
332
+ * cite
333
+ * code
334
+ * dd
335
+ * dfn
336
+ * dt
337
+ * em
338
+ * figcaption
339
+ * figure
340
+ * footer
341
+ * header
342
+ * hgroup
343
+ * kbd
344
+ * mark
345
+ * nav
346
+ * noscript
347
+ * rp
348
+ * rt
349
+ * ruby
350
+ * samp
351
+ * section
352
+ * sub
353
+ * summary
354
+ * sup
355
+ * var
356
+ * wbr
357
+
358
+ === Version 0.8.1 / 2012-12-28
359
+ * Fixes
360
+ * Fixed issue when calling new multi-element class methods using a block
361
+
362
+ === Version 0.8 / 2012-12-22
363
+ * Enhancements
364
+ * Added the following class level methods to return all elements matching the locator
365
+ * divs
366
+ * buttons
367
+ * text_fields
368
+ * hidden_fields
369
+ * text_areas
370
+ * select_lists
371
+ * links
372
+ * checkboxes
373
+ * radio_buttons
374
+ * spans
375
+ * tables
376
+ * cells
377
+ * images
378
+ * forms
379
+ * list_items
380
+ * unordered_lists
381
+ * ordered_lists
382
+ * h1s
383
+ * h2s
384
+ * h3s
385
+ * h4s
386
+ * h5s
387
+ * h6s
388
+ * paragraphs
389
+ * labels
390
+ * file_fields
391
+ * Added ability to register and use custom elements based on standard elements (William Powell)
392
+ * Added generated method to return text for a table
393
+ * Added generated method to return text for an unordered list
394
+ * Added generated method to return text for an ordered list
395
+ * Added html method to Element
396
+ * Updated to use the latest selenium-webdriver 2.27.2
397
+ * Updated to use the latest watir-webdriver 0.6.2
398
+
399
+ === Version 0.7.6 / 2012-11-28
400
+ * Fixes
401
+ * Fixed attach_to_window workes with partial url on Selenium (George Shakhnazaryan)
402
+ * Fixed double click works on Selenium (William Powell)
403
+ * Enhancements
404
+ * Added css selector support for all elements when using Selenium (Brendan Mulholland)
405
+ * Added callback to initialize_accessors method during initialization (Theodore Robert Campbell Jr)
406
+
407
+ === Version 0.7.5.1 / 2012-10-16
408
+ * Fixes
409
+ * Fixed issue when passing symbol to page_url and calling multiple times
410
+
411
+ === Version 0.7.5 / 2012-10-14
412
+ * Enhancements
413
+ * Enhanced TabeleCell to return nil when there is no corresponding cell for a referenced column
414
+ * Added css selector support for SelectList and Div
415
+ * Added ability to pass clasname as string to visit_page, on_page, and if_page methods
416
+ * Added params class instance variable to hold hash values that can be used in the page
417
+ * Added ability to insert ERB into page_url string and have it access params
418
+
419
+ === Version 0.7.4 / 2012-9-8
420
+ * Enhancements
421
+ * Added ability to find text_fields with :css when using Selenium
422
+ * Added selected_values method to SelectList to get values of all selected elements
423
+ * Fixes
424
+ * Fixed problem getting value from SelectList when it is in a Frame with Selenium
425
+
426
+ === Version 0.7.3 / 2012-8-18
427
+ * Enhancements
428
+ * Improved handling of alert and confirm Javascript popups (George Shakhnazaryan)
429
+ * Added hover method to Element. Browser support is limited.
430
+ * Added method to get the id of an Element
431
+ * Added support for the following new elements
432
+ Video
433
+
434
+ === Version 0.7.2 / 2012-8-1
435
+ * Enhancements
436
+ * Added ability to find list_item by :text
437
+ * Added support for the following new elements
438
+ Canvas
439
+ Audio
440
+ * Updated to use selenium-webdriver 2.25.0
441
+ * Updated to provide better support for table_row.find_index_by_title when tables have theads... (George Shakhnazaryan)
442
+
443
+ === Version 0.7.1 / 2012-7-15
444
+ * Enhancements
445
+ * Added support for the following new elements
446
+ Area
447
+ * Added the following aliased methods to their corresponding Accessors method
448
+ a => link
449
+ hidden => hidden_field
450
+ img => image
451
+ li => list_item
452
+ ol => ordered_list
453
+ p => paragraph
454
+ radio => radio_button
455
+ select => select_list
456
+ td => cell
457
+ textarea => text_area
458
+ ul => unordered_list
459
+ * Added the following methods to return generic Element objects
460
+ abbr
461
+ address
462
+ article
463
+ aside
464
+ bdi
465
+ bdo
466
+ cite
467
+ code
468
+ dd
469
+ dfn
470
+ dt
471
+ em
472
+ figcaption
473
+ figure
474
+ footer
475
+ header
476
+ hgroup
477
+ kbd
478
+ mark
479
+ nav
480
+ noscript
481
+ rp
482
+ rt
483
+ ruby
484
+ samp
485
+ section
486
+ sub
487
+ summary
488
+ sup
489
+ var
490
+ wbr
491
+
492
+ === Version 0.7.0 / 2012-6-30
493
+ * Enhancements
494
+ * Updated Table [] method to return a row that has matching partial text in any column (Thanks George Shakhnazaryan)
495
+ * Updated TableRow [] method to return column that matching partial text in any column (Thanks George Shakhnazaryan)
496
+ * Added if_page to PageFactory (Thanks Gregory Shayko)
497
+ * Added index_property for accessing sets of related fields (Thanks robkid)
498
+ * Updated to use selenium-webdriver 2.24.0
499
+
500
+
501
+ === Version 0.6.9 / 2012-6-12
502
+ * Enhancements
503
+ * Added select_value method to SelectList
504
+ * Updated link to be able to identify by title
505
+ * Updated div to be able to identify by title
506
+ * Updated text_field to be able to identify by text and label
507
+ * Updated to use selenium-webdriver 2.22.2
508
+ * Fixes
509
+ * Fixed populate_page_with to work with text areas (Thanks ramyav85)
510
+
511
+ === Version 0.6.8 / 2012-6-3
512
+ * Enhancements
513
+ * Updated [] method on Table to return nil when bad row header is provided
514
+ * Updated [] method on TableRow to return nil when bad column header is provided
515
+ * Updated to use watir-webdriver 0.6.1
516
+ * Updated to use selenium-webdriver 2.22.1
517
+ * Fixes
518
+ Modified text area methods so it clears before setting new text
519
+ Fixed clear method on SelectList when using Selenium to clear multi selects
520
+
521
+ === Version 0.6.7 / 2012-5-16
522
+ * Enhancements
523
+ * Added flash method to Element to temporarily change the background color
524
+ * Added when_not_present method to Element
525
+ * Added default override for page level waits - PageObject.default_page_wait
526
+ * Added default override for element level waits - PageObject.default_element_wait
527
+ * Added the ability to find a TableRow by providing a String to the [] method from Table
528
+ * Added the ability to find a TableCell by providing a String to the [] method from TableRow
529
+ * Updated to use watir-webdriver 0.5.8
530
+ * Fixes
531
+ * Improved logic around selecting options from select lists
532
+ * TableCell now handles enabled? call gracefully
533
+
534
+ === Version 0.6.6 / 2012-4-26
535
+ * Enhancements
536
+ * Added ability to find span's by title
537
+ * Changed order of initialization so initialize_page is called after goto
538
+ * Updated to use watir-webdriver 0.5.5
539
+ * Updated to use selenium-webdriver 2.21.2
540
+ * Fixes
541
+ * Fixed the problem with determining the existance of an Selenium element
542
+
543
+ === Version 0.6.5 / 2012-4-12
544
+ * Enhancements
545
+ * Added a page level element method to return a generic Element object
546
+ * Added a method to retrieve all file fields on a page
547
+ * Updated all accessor methods to take a default identifier of {:index => 0}
548
+ * Updated all page level element locators to take a default identifier of {:index => 0}
549
+ * Updated all page level multi-element locators to take a default identifier of {}
550
+ * Updated deprecation warning to print to stderr (Thanks Josh Adell)
551
+ * Updated to use selenium-webdriver 2.21.0
552
+
553
+ === Version 0.6.4 / 2012-3-27
554
+ * Enhancements
555
+ * Added support for finding the following elements by :css
556
+ Button
557
+ Link
558
+ * Added support for the label element (Thanks Paul Clewell)
559
+ * Added method to fetch generic element (Thanks Jim Holmes)
560
+ * Added direct_url alias for page_url
561
+ * Added visit alias for visit_page
562
+ * Added on alias for on_page
563
+ * Added element_with_focus method to return the element that has focus
564
+ * Changed Elements.element_class_for so parameters can be strings or symbols
565
+ * Changed page_url to accept a symbol that will cause it to call a corresponding method
566
+ * Updated to use watir-webdriver 0.5.4
567
+
568
+ === Version 0.6.3 / 2012-3-1
569
+ * Enhancements
570
+ * Added #expected_title method to PageObject
571
+ * Added #expected_element method to PageObject
572
+ * Added #execute_script method to PageObject
573
+ * Updated to use selenium-webdriver 2.20.0
574
+ * Fixes
575
+ * Updates to the README - Thanks to p0deje and ivaravko
576
+ WARNING: This change breaks existing code
577
+ * Changed the generated getter for select_list to return the text instead of the value
578
+
579
+ === Version 0.6.2 / 2012-2-12
580
+ * Enhancements
581
+ * Added #wait_for_ajax support for the jQuery framework
582
+ * Added #wait_for_ajax support for the Prototype framework
583
+ * Added the ability to add new Javascript Frameworks to PageObject via the #add_framework method
584
+ * Updated to use selenium-webdriver 2.19.0
585
+ * Updated to use watir-webdriver 0.5.3
586
+ * Fixes
587
+ * Fixed [] methods on OrderedList and UnorderedList so it only gets direct children
588
+ * Fixed items methods on OrderedList and UnorderedList so it returns count of direct children
589
+
590
+ === Version 0.6.1 / 2012-1-18
591
+ * Enhancements
592
+ * Added #disabled? method to Element
593
+ * Added #selected_options method to SelectList
594
+ * Added #include? and #selected? to SelectList
595
+ * Added #append to TextField
596
+ * generates a method to determine if an element exists (Thanks Nicholas Munson)
597
+ * better message when calling platform method via method_missing (Thanks Alex Rodionov)
598
+ * Updated to use selenium-webdriver 2.17.0
599
+
600
+ === Version 0.6 / 2012-1-10
601
+ * Enhancements
602
+ * Added ?_elements methods to ElementLocator so you can find all elements that match an identifier
603
+ * Added ?_elements methods to NestedElements so you can find all elements nested within others
604
+ * Added #navigate_to to PageFactory to navigate to a page through previous pages
605
+ * Added #continue_navigation_to to PageFactory which begins at @current_page
606
+ * Added routes to PageFactory to collect routes through the site
607
+ * Updated to use selenium-webdriver 2.16.0
608
+
609
+ === Version 0.5.5 / 2011-12-27
610
+ * Enhancements
611
+ * Added ability to find Checkbox by :value
612
+ * Added ability to find HiddenField by :value
613
+ * Added ability to find a parent of an Element
614
+ * Added #fire_event method to Element
615
+ * Added #focus method to Element
616
+ * Fixes
617
+ * Updated #populate_page_with to no longer attempt to set a value in a field that is disabled
618
+
619
+ === Version 0.5.4 / 2011-12-18
620
+ * Enhancements
621
+ * Added deprecation warning to the method_missing method on Element. This ability will be removed in 0.6
622
+ * Added full support for file_field element
623
+ * Added ability to find TextField by :title
624
+ * Added ability to find Form by :action
625
+ * Added ability to find Image by :alt
626
+ * Added ability to find Image by :src
627
+
628
+ === Version 0.5.3 / 2011-12-11
629
+ * Enhancements
630
+ * Added new module PagePopulator with single method populate_page_with
631
+ * Updated to use selenium-webdriver 2.15.0
632
+ * Updated to use watir-webdriver 0.4.1
633
+ * Fixes
634
+ * Updated prompt method to make it compatible with latest dependencies
635
+
636
+ === Version 0.5.2 / 2011-11-30
637
+ * Enhancements
638
+ * Added ability to find image buttons by src
639
+ * Added ability to find image button by alt
640
+ * Added first_row and last_row methods to Table
641
+ * Updated to use selenium-webdriver 2.14.0
642
+ * Updated to use watir-webdriver 0.3.9
643
+
644
+ === Version 0.5.1 / 2011-11-18
645
+ * Enhancements
646
+ * Added instance level in_frame method
647
+ * Support for nesting all *_element instance methods inside in_frame call
648
+ * Support for nesting alerts inside an in_frame call
649
+ * Support for nesting confirms inside an in_frame call
650
+ * Support for nesting prompts inside an in_frame call
651
+
652
+ === Version 0.5 / 2011-11-06
653
+ * Enhancements
654
+ * Validated support for JRuby
655
+ * Removed dependency on Mixology
656
+ * Updated to use selenium-webdriver 2.10.0
657
+ * Updated to use watir-webdriver 0.3.8
658
+
659
+ === Version 0.4.4 / 2011-10-26
660
+ * Enhancements
661
+ * Can now find Radio buttons by value
662
+ * Updated to use selenium-webdriver 2.9.1
663
+ * Fixes
664
+ * Properly change context back to top level after interaction inside a frame with Watir
665
+
666
+ === Version 0.4.3 / 2011-10-07
667
+ * Enhancements
668
+ * The new watir and selenium fix a fairly serious problem when working with modals and attaching to windows
669
+ * Updated to use selenium-webdriver 2.8.0
670
+ * Updated to use watir-webdriver 0.3.5
671
+
672
+ === Version 0.4.2 / 2011-10-01
673
+ * Enhancements
674
+ * Proper handling of <button> elements
675
+ * Changed PageFactory so it also sets and instance variable @current_page to the newly created page
676
+
677
+ === Version 0.4.1 / 2011-09-30
678
+ * Fixes
679
+ * Fixed error when loading plugins using Selenium
680
+
681
+ === Version 0.4 / 2011-09-24
682
+ * Enhancements
683
+ * Added all of the h4 locators
684
+ * Added all of the h5 locators
685
+ * Added all of the h6 locators
686
+ * Added all of the paragraph locators
687
+ * Added the Paragraph class
688
+ * Added #click to Element
689
+ * Added #style to Element
690
+ * Added #inspect to Element
691
+ * Added #current_url to PageObject
692
+ * Added #clear_cookies to PageObject
693
+ * Added #save_screenshot to PageObject
694
+ * Updated to use selenium-webdriver 2.7.0
695
+ * Updated to use watir-webdriver 0.3.4
696
+
697
+ === Version 0.3.2 / 2011-09-22
698
+ * Enhancements
699
+ * Element#when_present now returns the element object
700
+ * Element#when_visible now returns the element object
701
+ * Element#when_not_visible now returns the element object
702
+ * Added #clear method for TextArea
703
+ * Added support for Heading element
704
+ * Added all of the h1 locators
705
+ * Added all of the h2 locators
706
+ * Added all of the h3 locators
707
+ * Updated to use selenium-webdriver 2.6.0
708
+
709
+ === Version 0.3.1 / 2011-09-08
710
+ * Enhancements
711
+ * Updated to use watir-webdriver 0.3.3
712
+
713
+ === Version 0.3.0 / 2011-09-04
714
+ * Enhancements
715
+ * Changed namespace for selenium and watir to include webdriver
716
+ * Support for locating the following elements when nested
717
+ * Link
718
+ * Button
719
+ * TextField
720
+ * HiddenField
721
+ * TextArea
722
+ * SelectList
723
+ * Checkbox
724
+ * RadioButton
725
+ * Div
726
+ * Span
727
+ * Table
728
+ * TableCell
729
+ * Image
730
+ * Form
731
+ * OrderedList
732
+ * UnorderedList
733
+ * ListItem
734
+ * Added #modal_dialog to PageObject to override the default modal dialog behavior
735
+ * Changed element keys to include _webdriver
736
+ * Updated to use selenium-webdriver 2.5.0
737
+
738
+ === Version 0.2.5 / 2011-08-19
739
+ * Enhancements
740
+ * #attach_to_window takes an optional block - will return to calling window after block executes
741
+ * Added the following instance methods to PageObject via ElementLocators
742
+ * #button_element
743
+ * #text_field_element
744
+ * #hidden_field_element
745
+ * #text_area_element
746
+ * #select_list_element
747
+ * #link_element
748
+ * #checkbox_element
749
+ * #radio_button_element
750
+ * #div_element
751
+ * #span_element
752
+ * #table_element
753
+ * #cell_element
754
+ * #image_element
755
+ * #form_element
756
+ * #list_item_element
757
+ * #unordered_list_element
758
+ * #ordered_list_element
759
+ * Updated to use selenium-webdriver 2.4.0
760
+ * Updated to use watir-webdriver 0.3.2
761
+
762
+ === Version 0.2.4 / 2011-08-08
763
+ * Enhancements
764
+ * Can now find span by :text
765
+ * Can now find button by :value
766
+ * Added #forward and #back methods to PageObject
767
+ * Added #right_click and #double_click methods to Element
768
+ * Added #value= to TextField and TextArea
769
+ * Added #select to SelectList
770
+ * Added #check, #uncheck, and #checked? to CheckBox
771
+ * Added #select, #clear, and #selected? to RadioButton
772
+ * Can properly pass blocks to all accessor methods
773
+ * Updated to use watir-webdriver 0.3.0
774
+
775
+ === Version 0.2.3 / 2011-08-01
776
+ * Enhancements
777
+ * Can now find a TableCell by its' text
778
+ * If we receive an error calling #attach_to_window, wait one second and try again
779
+ * Will call callback method #initialize_page method if it exists on a page object
780
+ * Renamed all *_<element_type> methods to *_element. Created alias for backward compatibility
781
+ * Delegating unknown method calls on Element to the driver element object
782
+ * Improved block handling when passed to element creation method
783
+ * Updated to use selenium-webdriver 2.3.2
784
+
785
+ === Version 0.2.2 / 2011-07-31
786
+ * Enhancements
787
+ * Can find frame by name
788
+ * Added #clear method to Element
789
+ * Removed #switch_to_from from PageObject
790
+ * Added #in_frame to Accessors to handle frame and iframe access
791
+ * Fixes
792
+ * Clearing value from text_field before setting value on Selenium
793
+
794
+ === Version 0.2.1 / 2011-07-29
795
+ * Enhancements
796
+ * Added ability to locate div by the contained text
797
+ * Added #attach_to_window so a page object and operate on another window
798
+ * Added #switch_to_frame to allow one to switch to a frame
799
+ * Added #send_keys to PageObject::Elements::Element
800
+ * Added #refresh to page object
801
+ * Work toward making drivers pluggable
802
+ * Updated to use selenium-webdriver 2.2.0
803
+ * Updated to use watir-webdriver 0.2.8
804
+
805
+ === Version 0.2 / 2011-07-24
806
+ * Enhancements
807
+ * Async handling
808
+ * Added #wait_until to page object to support async events at page level
809
+ * Added the following methods to PageObject::Elements::Element
810
+ * #when_present
811
+ * #when_visible
812
+ * #when_not_visible
813
+ * #wait_until
814
+ * Handling popups
815
+ * Added #alert to page object to override default alert popup behavior
816
+ * Added #confirm to page object to override default confirm popup behavior
817
+ * Added #prompt to page object to override default prompt popup behavior
818
+ * Updated to use selenium-webdriver 2.1.0
819
+
820
+ === Version 0.1.1 / 2011-07-16
821
+ * Enhancements
822
+ * Support for identifying hidden fields by text when using Selenium
823
+ * Support for identifying links by href when using Selenium
824
+ * Updated to use selenium-webdriver 2.0.1
825
+ * Updated to use watir-webdriver 0.2.6
826
+
827
+ === Version 0.1 / 2011-07-01
828
+ * Enhancements
829
+ * Support for using multiple identifiers when locating the following element:
830
+ * Link
831
+ * TextField
832
+ * HiddenField
833
+ * TextArea
834
+ * SelectList
835
+ * CheckBox
836
+ * RadioButton
837
+ * Button
838
+ * Div
839
+ * Span
840
+ * Table
841
+ * TableCell
842
+ * Image
843
+ * Form
844
+ * ListItem
845
+ * UnorderedList
846
+ * OrderedList
847
+ * Selenium support for using index for the following elements:
848
+ * Link
849
+ * TextField
850
+ * HiddenField
851
+ * TextArea
852
+ * SelectList
853
+ * CheckBox
854
+ * RadioButton
855
+ * Button
856
+ * Div
857
+ * Span
858
+ * Table
859
+ * Image
860
+ * Form
861
+ * ListItem
862
+ * UnorderedList
863
+ * OrderedList
864
+ * Support name for identification across all elements in Watir
865
+ * Added [] method to SelectList to index Options
866
+ * Added options method to Select List
867
+ * Added support for the following elements
868
+ * Option
869
+ * Updated to use selenium-webdriver 0.2.2
870
+ * Updated to use watir-webdriver 0.2.5
871
+
872
+ === Version 0.0.5 / 2011-06-15
873
+ * Enhancements
874
+ * Added rows method to Table to return number or rows
875
+ * Added columns method to TableRow to return the number of columns
876
+ * Table now supports Enumerable to iterate over the TableRows
877
+ * TableRow now supports Enumerable to iterate over TableCells
878
+ * Added items method to UnorderedList to return number of ListItems
879
+ * Added items method to OrderedList to return number of ListItems
880
+ * UnorderedList now supports Enumerable to iterate over the ListItems
881
+ * OrderedList now supports Enumerable to iterate over the ListItems
882
+ * All element methods now take an optional block that can be executed passing a browser
883
+ * Created PageFactory module to add factory methods to your step definitions
884
+ * Thanks Alister Scott for the idea
885
+
886
+
887
+ === Version 0.0.4 / 2011-06-13
888
+ * Enhancements
889
+ * Added support for the following elements
890
+ * hidden field
891
+ * form
892
+ * list item
893
+ * unordered list
894
+ * ordered list
895
+
896
+ === Version 0.0.3 / 2011-06-02
897
+ * Enhancements
898
+ * Added support for the following elements
899
+ * span
900
+ * image
901
+ * Added the following methods to Element
902
+ * value
903
+ * ==
904
+ * tag_name
905
+ * attribute
906
+ * click
907
+ * Updated to use selenium-webdriver 0.2.1
908
+ * Updated to use watir-webdriver 0.2.4
909
+
910
+ === Version 0.0.2 / 2011-05-30
911
+ * Enhancements
912
+ * Added support for the following elements
913
+ * div
914
+ * button
915
+ * table
916
+ * table row
917
+ * table cell
918
+ * Added text method to element
919
+
920
+ === Version 0.0.1 / 2011-05-22
921
+ * Enhancements
922
+ * Support for the following elements
923
+ * check box
924
+ * link
925
+ * radio button
926
+ * select list
927
+ * text field
928
+ * Support for the following page level functions
929
+ * text
930
+ * html
931
+ * title