watir-webdriver 0.3.8 → 0.3.9

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.
@@ -7,7 +7,9 @@ notifications:
7
7
  before_script:
8
8
  - support/travis.sh
9
9
  env:
10
+ - WATIR_WEBDRIVER_BROWSER=firefox
10
11
  - WATIR_WEBDRIVER_BROWSER=firefox ALWAYS_LOCATE=false
11
- - WATIR_WEBDRIVER_BROWSER=firefox ALWAYS_LOCATE=true
12
+ # - WATIR_WEBDRIVER_BROWSER=firefox NATIVE_EVENTS=true
13
+ - WATIR_WEBDRIVER_BROWSER=chrome
12
14
  - WATIR_WEBDRIVER_BROWSER=chrome ALWAYS_LOCATE=false
13
- - WATIR_WEBDRIVER_BROWSER=chrome ALWAYS_LOCATE=true
15
+ # - WATIR_WEBDRIVER_BROWSER=chrome NATIVE_EVENTS=true
data/Gemfile CHANGED
@@ -1,7 +1,9 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "simplecov", ">= 0.3.5", :platform => :ruby_19
4
- gem "ruby-debug19", :platform => :ruby_19
3
+ unless ENV['TRAVIS']
4
+ gem "simplecov", ">= 0.3.5", :platform => :ruby_19
5
+ gem "ruby-debug19", :platform => :ruby_19
6
+ end
5
7
 
6
8
  # Specify your gem's dependencies in watir-webdriver.gemspec
7
9
  gemspec
data/Rakefile CHANGED
@@ -12,15 +12,13 @@ end
12
12
  namespace :spec do
13
13
  RSpec::Core::RakeTask.new(:html) do |spec|
14
14
  spec.ruby_opts = "-I lib:spec"
15
- spec.pattern = 'spec/**/*_spec.rb'
16
15
  spec.rspec_opts = "--format html --out #{ENV["SPEC_REPORT"] || "specs.html"}"
16
+ spec.pattern = 'spec/**/*_spec.rb'
17
17
  end
18
18
  end
19
19
 
20
20
  task :default => :spec
21
21
 
22
-
23
-
24
22
  task :lib do
25
23
  $LOAD_PATH.unshift(File.expand_path("lib", File.dirname(__FILE__)))
26
24
  end
@@ -6,7 +6,8 @@ require 'watir-webdriver/version'
6
6
  require 'watir-webdriver/wait'
7
7
  require 'watir-webdriver/exception'
8
8
  require 'watir-webdriver/xpath_support'
9
- require 'watir-webdriver/window_switching'
9
+ require 'watir-webdriver/window'
10
+ require 'watir-webdriver/has_window'
10
11
  require 'watir-webdriver/atoms'
11
12
  require 'watir-webdriver/container'
12
13
  require 'watir-webdriver/locators/element_locator'
@@ -7,7 +7,7 @@ module Watir
7
7
 
8
8
  class Browser
9
9
  include Container
10
- include WindowSwitching
10
+ include HasWindow
11
11
  include Waitable
12
12
 
13
13
  attr_reader :driver
@@ -14,6 +14,15 @@ module Watir
14
14
  include Selenium
15
15
  include EventuallyPresent
16
16
 
17
+ #
18
+ # need to add this here since we no longer get them from the spec
19
+ # @see http://html5.org/r/6605
20
+ # @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=13610
21
+ #
22
+ # TODO: use IDL from DOM core?
23
+ #
24
+ attributes :string => [:id]
25
+
17
26
  def initialize(parent, selector)
18
27
  @parent = parent
19
28
  @selector = selector
@@ -187,7 +196,7 @@ module Watir
187
196
  def present?
188
197
  exists? && visible?
189
198
  rescue Selenium::WebDriver::Error::ObsoleteElementError, UnknownObjectException
190
- # if the element disappears between the exists? and visible? calls,
199
+ # if the element disappears between the exists? and visible? calls,
191
200
  # consider it not present.
192
201
  false
193
202
  end
@@ -45,6 +45,20 @@ module Watir
45
45
 
46
46
 
47
47
 
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
48
62
 
49
63
 
50
64
 
@@ -61,7 +75,7 @@ module Watir
61
75
 
62
76
 
63
77
  class HTMLElement < Element
64
- attributes(:string => [:innerhtml, :outerhtml, :id, :title, :lang, :dir, :class_name, :item_type, :item_id, :item_value, :access_key, :access_key_label, :content_editable, :command_type, :command_label, :command_icon], :token_list => [:class_list, :item_ref, :item_prop, :dropzone], :string_map => [:dataset], :bool => [:item_scope, :hidden, :draggable, :content_editable, :spellcheck, :command_hidden, :command_disabled, :command_checked], :properties_collection => [:properties], :int => [:tab_index], :html_element => [:context_menu], :style => [:style], :function => [:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :oncuechange, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onreset, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting])
78
+ attributes(:string => [:access_key, :access_key_label, :class_name, :command_icon, :command_label, :command_type, :content_editable, :dir, :item_id, :item_value, :lang, :title], :token_list => [:class_list, :dropzone, :item_prop, :item_ref, :item_type], :bool => [:command_checked, :command_disabled, :command_hidden, :draggable, :hidden, :content_editable, :item_scope, :spellcheck], :html_element => [:context_menu], :string_map => [:dataset], :function => [:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :oncuechange, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreset, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting], :properties_collection => [:properties], :style => [:style], :int => [:tab_index])
65
79
  end
66
80
  class HTMLElementCollection < ElementCollection
67
81
  def element_class
@@ -93,7 +107,7 @@ module Watir
93
107
  end
94
108
  end
95
109
  class Frame < HTMLElement
96
- attributes(:string => [:frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src, :content_window], :bool => [:no_resize], :document => [:content_document])
110
+ attributes(:document => [:content_document], :string => [:content_window, :frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src], :bool => [:no_resize])
97
111
  end
98
112
  class FrameCollection < ElementCollection
99
113
  def element_class
@@ -101,7 +115,7 @@ module Watir
101
115
  end
102
116
  end
103
117
  class FrameSet < HTMLElement
104
- attributes(:string => [:cols, :rows], :function => [:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onredo, :onresize, :onscroll, :onstorage, :onundo, :onunload])
118
+ attributes(:string => [:cols, :rows], :function => [:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onresize, :onscroll, :onstorage, :onunload])
105
119
  end
106
120
  class FrameSetCollection < ElementCollection
107
121
  def element_class
@@ -109,7 +123,7 @@ module Watir
109
123
  end
110
124
  end
111
125
  class Marquee < HTMLElement
112
- attributes(:string => [:behavior, :bg_color, :direction, :height, :width], :int => [:hspace, :loop, :scroll_amount, :scroll_delay, :vspace], :bool => [:true_speed], :function => [:onbounce, :onfinish, :onstart])
126
+ attributes(:string => [:behavior, :bg_color, :direction, :height, :width], :int => [:hspace, :loop, :scroll_amount, :scroll_delay, :vspace], :function => [:onbounce, :onfinish, :onstart], :bool => [:true_speed])
113
127
  end
114
128
  class MarqueeCollection < ElementCollection
115
129
  def element_class
@@ -125,7 +139,7 @@ module Watir
125
139
  end
126
140
  end
127
141
  class Menu < HTMLElement
128
- attributes(:string => [:type, :label])
142
+ attributes(:string => [:label, :type])
129
143
  end
130
144
  class MenuCollection < ElementCollection
131
145
  def element_class
@@ -137,7 +151,7 @@ module Watir
137
151
  end
138
152
  # do nothing
139
153
  class Command < HTMLElement
140
- attributes(:string => [:type, :label, :icon, :radiogroup], :bool => [:disabled, :checked])
154
+ attributes(:bool => [:checked, :disabled], :string => [:icon, :label, :radiogroup, :type])
141
155
  end
142
156
  class CommandCollection < ElementCollection
143
157
  def element_class
@@ -153,7 +167,7 @@ module Watir
153
167
  end
154
168
  end
155
169
  class Meter < HTMLElement
156
- attributes(:float => [:value, :min, :max, :low, :high, :optimum], :list => [:labels])
170
+ attributes(:float => [:high, :low, :max, :min, :optimum, :value], :list => [:labels])
157
171
  end
158
172
  class MeterCollection < ElementCollection
159
173
  def element_class
@@ -161,7 +175,7 @@ module Watir
161
175
  end
162
176
  end
163
177
  class Progress < HTMLElement
164
- attributes(:float => [:value, :max, :position], :list => [:labels])
178
+ attributes(:list => [:labels], :float => [:max, :position, :value])
165
179
  end
166
180
  class ProgressCollection < ElementCollection
167
181
  def element_class
@@ -169,7 +183,7 @@ module Watir
169
183
  end
170
184
  end
171
185
  class Output < HTMLElement
172
- attributes(:token_list => [:html_for], :html_element => [:form], :string => [:name, :type, :default_value, :value, :validity, :validation_message], :bool => [:will_validate], :list => [:labels])
186
+ attributes(:string => [:default_value, :name, :type, :validation_message, :validity, :value], :html_element => [:form], :token_list => [:html_for], :list => [:labels], :bool => [:will_validate])
173
187
  end
174
188
  class OutputCollection < ElementCollection
175
189
  def element_class
@@ -177,7 +191,7 @@ module Watir
177
191
  end
178
192
  end
179
193
  class Keygen < HTMLElement
180
- attributes(:bool => [:autofocus, :disabled, :will_validate], :string => [:challenge, :keytype, :name, :type, :validity, :validation_message], :html_element => [:form], :list => [:labels])
194
+ attributes(:bool => [:autofocus, :disabled, :will_validate], :string => [:challenge, :keytype, :name, :type, :validation_message, :validity], :html_element => [:form], :list => [:labels])
181
195
  end
182
196
  class KeygenCollection < ElementCollection
183
197
  def element_class
@@ -185,7 +199,7 @@ module Watir
185
199
  end
186
200
  end
187
201
  class TextArea < HTMLElement
188
- attributes(:bool => [:autofocus, :disabled, :read_only, :required, :will_validate], :int => [:cols, :max_length, :rows, :text_length, :selection_start, :selection_end], :string => [:dir_name, :name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message, :selection_direction], :html_element => [:form], :list => [:labels])
202
+ attributes(:bool => [:autofocus, :disabled, :read_only, :required, :will_validate], :int => [:cols, :max_length, :rows, :selection_end, :selection_start, :text_length], :string => [:default_value, :dir_name, :name, :placeholder, :selection_direction, :type, :validation_message, :validity, :value, :wrap], :html_element => [:form], :list => [:labels])
189
203
  end
190
204
  class TextAreaCollection < ElementCollection
191
205
  def element_class
@@ -193,7 +207,7 @@ module Watir
193
207
  end
194
208
  end
195
209
  class Option < HTMLElement
196
- attributes(:bool => [:disabled, :default_selected, :selected], :html_element => [:form], :string => [:label, :value, :text], :int => [:index])
210
+ attributes(:bool => [:default_selected, :disabled, :selected], :html_element => [:form], :int => [:index], :string => [:label, :text, :value])
197
211
  end
198
212
  class OptionCollection < ElementCollection
199
213
  def element_class
@@ -217,7 +231,7 @@ module Watir
217
231
  end
218
232
  end
219
233
  class Select < HTMLElement
220
- attributes(:bool => [:autofocus, :disabled, :multiple, :required, :will_validate], :html_element => [:form], :string => [:name, :type, :value, :validity, :validation_message], :int => [:size, :length, :selected_index], :html_collection => [:options, :selected_options], :list => [:labels])
234
+ attributes(:bool => [:autofocus, :disabled, :multiple, :required, :will_validate], :html_element => [:form], :list => [:labels], :int => [:length, :selected_index, :size], :string => [:name, :type, :validation_message, :validity, :value], :html_collection => [:options, :selected_options])
221
235
  end
222
236
  class SelectCollection < ElementCollection
223
237
  def element_class
@@ -225,7 +239,7 @@ module Watir
225
239
  end
226
240
  end
227
241
  class Button < HTMLElement
228
- attributes(:bool => [:autofocus, :disabled, :will_validate], :html_element => [:form], :string => [:form_action, :form_enctype, :form_method, :form_no_validate, :form_target, :name, :type, :value, :validity, :validation_message], :list => [:labels])
242
+ attributes(:bool => [:autofocus, :disabled, :form_no_validate, :will_validate], :html_element => [:form], :string => [:form_action, :form_enctype, :form_method, :form_target, :name, :type, :validation_message, :validity, :value], :list => [:labels])
229
243
  end
230
244
  class ButtonCollection < ElementCollection
231
245
  def element_class
@@ -233,7 +247,7 @@ module Watir
233
247
  end
234
248
  end
235
249
  class Input < HTMLElement
236
- attributes(:string => [:accept, :alt, :autocomplete, :dir_name, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message, :selection_direction], :bool => [:autofocus, :default_checked, :checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate], :html_element => [:form, :list, :selected_option], :list => [:files, :labels], :int => [:max_length, :size, :selection_start, :selection_end], :date => [:value_as_date], :float => [:value_as_number])
250
+ attributes(:string => [:accept, :alt, :autocomplete, :default_value, :dir_name, :form_action, :form_enctype, :form_method, :form_target, :max, :min, :name, :pattern, :placeholder, :selection_direction, :src, :step, :type, :validation_message, :validity, :value], :bool => [:autofocus, :checked, :default_checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate], :list => [:files, :labels], :html_element => [:form, :list], :int => [:height, :max_length, :selection_end, :selection_start, :size, :width], :date => [:value_as_date], :float => [:value_as_number])
237
251
  end
238
252
  class InputCollection < ElementCollection
239
253
  def element_class
@@ -245,7 +259,7 @@ module Watir
245
259
  end
246
260
  # do nothing
247
261
  class Label < HTMLElement
248
- attributes(:html_element => [:form, :control], :string => [:html_for])
262
+ attributes(:html_element => [:control, :form], :string => [:html_for])
249
263
  end
250
264
  class LabelCollection < ElementCollection
251
265
  def element_class
@@ -265,7 +279,7 @@ module Watir
265
279
  end
266
280
  # do nothing
267
281
  class FieldSet < HTMLElement
268
- attributes(:bool => [:disabled, :will_validate], :html_element => [:form], :string => [:name, :type, :validity, :validation_message], :html_collection => [:elements])
282
+ attributes(:bool => [:disabled, :will_validate], :html_collection => [:elements], :html_element => [:form], :string => [:name, :type, :validation_message, :validity])
269
283
  end
270
284
  class FieldSetCollection < ElementCollection
271
285
  def element_class
@@ -273,7 +287,7 @@ module Watir
273
287
  end
274
288
  end
275
289
  class Form < HTMLElement
276
- attributes(:string => [:accept_charset, :action, :autocomplete, :enctype, :encoding, :method, :name, :target], :bool => [:no_validate], :html_collection => [:elements], :int => [:length])
290
+ attributes(:string => [:accept_charset, :action, :autocomplete, :encoding, :enctype, :method, :name, :target], :html_collection => [:elements], :int => [:length], :bool => [:no_validate])
277
291
  end
278
292
  class FormCollection < ElementCollection
279
293
  def element_class
@@ -281,7 +295,7 @@ module Watir
281
295
  end
282
296
  end
283
297
  class TableCell < HTMLElement
284
- attributes(:int => [:col_span, :row_span, :cell_index], :token_list => [:headers])
298
+ attributes(:int => [:cell_index, :col_span, :row_span], :token_list => [:headers])
285
299
  end
286
300
  class TableCellCollection < ElementCollection
287
301
  def element_class
@@ -309,7 +323,7 @@ module Watir
309
323
  end
310
324
  end
311
325
  class TableRow < HTMLElement
312
- attributes(:int => [:row_index, :section_row_index], :html_collection => [:cells])
326
+ attributes(:html_collection => [:cells], :int => [:row_index, :section_row_index])
313
327
  end
314
328
  class TableRowCollection < ElementCollection
315
329
  def element_class
@@ -357,7 +371,7 @@ module Watir
357
371
  end
358
372
  # do nothing
359
373
  class Table < HTMLElement
360
- attributes(:html_element => [:caption, :t_head, :t_foot], :html_collection => [:t_bodies, :rows], :string => [:border])
374
+ attributes(:string => [:border], :html_element => [:caption, :t_foot, :t_head], :html_collection => [:rows, :t_bodies])
361
375
  end
362
376
  class TableCollection < ElementCollection
363
377
  def element_class
@@ -369,7 +383,7 @@ module Watir
369
383
  end
370
384
  # do nothing
371
385
  class Area < HTMLElement
372
- attributes(:string => [:alt, :coords, :shape, :href, :target, :ping, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash], :token_list => [:rel_list])
386
+ attributes(:string => [:alt, :coords, :download, :hash, :host, :hostname, :href, :hreflang, :media, :pathname, :ping, :port, :protocol, :rel, :search, :shape, :target, :type], :token_list => [:rel_list])
373
387
  end
374
388
  class AreaCollection < ElementCollection
375
389
  def element_class
@@ -381,7 +395,7 @@ module Watir
381
395
  end
382
396
  # do nothing
383
397
  class Map < HTMLElement
384
- attributes(:string => [:name], :html_collection => [:areas, :images])
398
+ attributes(:html_collection => [:areas, :images], :string => [:name])
385
399
  end
386
400
  class MapCollection < ElementCollection
387
401
  def element_class
@@ -389,7 +403,7 @@ module Watir
389
403
  end
390
404
  end
391
405
  class Canvas < HTMLElement
392
- attributes(:int => [:width, :height])
406
+ attributes(:int => [:height, :width])
393
407
  end
394
408
  class CanvasCollection < ElementCollection
395
409
  def element_class
@@ -397,7 +411,7 @@ module Watir
397
411
  end
398
412
  end
399
413
  class Media < HTMLElement
400
- attributes(:string => [:error, :src, :current_src, :cross_origin, :preload, :buffered, :played, :seekable, :media_group, :controller], :int => [:network_state, :ready_state], :bool => [:seeking, :paused, :ended, :autoplay, :loop, :controls, :muted, :default_muted], :float => [:current_time, :initial_time, :duration, :default_playback_rate, :playback_rate, :volume], :date => [:start_offset_time], :list => [:audio_tracks, :video_tracks, :text_tracks])
414
+ attributes(:list => [:audio_tracks, :text_tracks, :video_tracks], :bool => [:autoplay, :controls, :default_muted, :ended, :loop, :muted, :paused, :seeking], :string => [:buffered, :controller, :cross_origin, :current_src, :error, :media_group, :played, :preload, :seekable, :src], :float => [:current_time, :default_playback_rate, :duration, :initial_time, :playback_rate, :volume], :int => [:network_state, :ready_state], :date => [:start_offset_time])
401
415
  end
402
416
  class MediaCollection < ElementCollection
403
417
  def element_class
@@ -413,7 +427,7 @@ module Watir
413
427
  end
414
428
  end
415
429
  class Video < Media
416
- attributes(:int => [:width, :height, :video_width, :video_height], :string => [:poster])
430
+ attributes(:int => [:height, :video_height, :video_width, :width], :string => [:poster])
417
431
  end
418
432
  class VideoCollection < ElementCollection
419
433
  def element_class
@@ -421,7 +435,7 @@ module Watir
421
435
  end
422
436
  end
423
437
  class Track < HTMLElement
424
- attributes(:string => [:kind, :src, :srclang, :label, :track], :bool => [:default])
438
+ attributes(:bool => [:default], :string => [:kind, :label, :src, :srclang, :track], :int => [:ready_state])
425
439
  end
426
440
  class TrackCollection < ElementCollection
427
441
  def element_class
@@ -429,7 +443,7 @@ module Watir
429
443
  end
430
444
  end
431
445
  class Source < HTMLElement
432
- attributes(:string => [:src, :type, :media])
446
+ attributes(:string => [:media, :src, :type])
433
447
  end
434
448
  class SourceCollection < ElementCollection
435
449
  def element_class
@@ -449,7 +463,7 @@ module Watir
449
463
  end
450
464
  # do nothing
451
465
  class Object < HTMLElement
452
- attributes(:string => [:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message], :bool => [:type_must_match, :will_validate], :html_element => [:form], :document => [:content_document])
466
+ attributes(:document => [:content_document], :string => [:content_window, :data, :height, :name, :type, :use_map, :validation_message, :validity, :width], :html_element => [:form], :bool => [:type_must_match, :will_validate])
453
467
  end
454
468
  class ObjectCollection < ElementCollection
455
469
  def element_class
@@ -461,7 +475,7 @@ module Watir
461
475
  end
462
476
  # do nothing
463
477
  class Embed < HTMLElement
464
- attributes(:string => [:src, :type, :width, :height])
478
+ attributes(:string => [:height, :src, :type, :width])
465
479
  end
466
480
  class EmbedCollection < ElementCollection
467
481
  def element_class
@@ -473,7 +487,7 @@ module Watir
473
487
  end
474
488
  # do nothing
475
489
  class IFrame < HTMLElement
476
- attributes(:string => [:src, :srcdoc, :name, :width, :height, :content_window], :token_list => [:sandbox], :bool => [:seamless], :document => [:content_document])
490
+ attributes(:document => [:content_document], :string => [:content_window, :height, :name, :src, :srcdoc, :width], :token_list => [:sandbox], :bool => [:seamless])
477
491
  end
478
492
  class IFrameCollection < ElementCollection
479
493
  def element_class
@@ -485,7 +499,7 @@ module Watir
485
499
  end
486
500
  # do nothing
487
501
  class Image < HTMLElement
488
- attributes(:string => [:alt, :src, :cross_origin, :use_map], :bool => [:map, :complete], :int => [:width, :height, :natural_width, :natural_height])
502
+ attributes(:string => [:alt, :cross_origin, :src, :use_map], :bool => [:complete, :map], :int => [:height, :natural_height, :natural_width, :width])
489
503
  end
490
504
  class ImageCollection < ElementCollection
491
505
  def element_class
@@ -493,7 +507,7 @@ module Watir
493
507
  end
494
508
  end
495
509
  class Image < HTMLElement
496
- attributes(:string => [:name, :align, :border, :long_desc], :int => [:hspace, :vspace])
510
+ attributes(:string => [:align, :border, :long_desc, :name], :int => [:hspace, :vspace])
497
511
  end
498
512
  # do nothing
499
513
  class Mod < HTMLElement
@@ -524,16 +538,16 @@ module Watir
524
538
  Span
525
539
  end
526
540
  end
527
- class Time < HTMLElement
528
- attributes(:string => [:date_time], :bool => [:pub_date], :date => [:value_as_date])
541
+ class Data < HTMLElement
542
+ attributes(:string => [:value])
529
543
  end
530
- class TimeCollection < ElementCollection
544
+ class DataCollection < ElementCollection
531
545
  def element_class
532
- Time
546
+ Data
533
547
  end
534
548
  end
535
549
  class Anchor < HTMLElement
536
- attributes(:string => [:href, :target, :ping, :rel, :media, :hreflang, :type, :text, :protocol, :host, :hostname, :port, :pathname, :search, :hash], :token_list => [:rel_list])
550
+ attributes(:string => [:download, :hash, :host, :hostname, :href, :hreflang, :media, :pathname, :ping, :port, :protocol, :rel, :search, :target, :text, :type], :token_list => [:rel_list])
537
551
  end
538
552
  class AnchorCollection < ElementCollection
539
553
  def element_class
@@ -541,7 +555,7 @@ module Watir
541
555
  end
542
556
  end
543
557
  class Anchor < HTMLElement
544
- attributes(:string => [:coords, :charset, :name, :rev, :shape])
558
+ attributes(:string => [:charset, :coords, :name, :rev, :shape])
545
559
  end
546
560
  # do nothing
547
561
  class Div < HTMLElement
@@ -661,7 +675,7 @@ module Watir
661
675
  end
662
676
  # do nothing
663
677
  class Body < HTMLElement
664
- attributes(:function => [:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onscroll, :onstorage, :onundo, :onunload])
678
+ attributes(:function => [:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onresize, :onscroll, :onstorage, :onunload])
665
679
  end
666
680
  class BodyCollection < ElementCollection
667
681
  def element_class
@@ -669,11 +683,11 @@ module Watir
669
683
  end
670
684
  end
671
685
  class Body < HTMLElement
672
- attributes(:string => [:text, :bg_color, :background, :link, :v_link, :a_link])
686
+ attributes(:string => [:a_link, :background, :bg_color, :link, :text, :v_link])
673
687
  end
674
688
  # do nothing
675
689
  class Script < HTMLElement
676
- attributes(:string => [:src, :type, :charset, :text], :bool => [:async, :defer])
690
+ attributes(:bool => [:async, :defer], :string => [:charset, :src, :text, :type])
677
691
  end
678
692
  class ScriptCollection < ElementCollection
679
693
  def element_class
@@ -693,7 +707,7 @@ module Watir
693
707
  end
694
708
  end
695
709
  class Meta < HTMLElement
696
- attributes(:string => [:name, :http_equiv, :content])
710
+ attributes(:string => [:content, :http_equiv, :name])
697
711
  end
698
712
  class MetaCollection < ElementCollection
699
713
  def element_class
@@ -760,10 +774,6 @@ module Watir
760
774
 
761
775
 
762
776
 
763
-
764
-
765
-
766
-
767
777
  module Container
768
778
  #
769
779
  # @return [Anchor]
@@ -1140,6 +1150,23 @@ module Watir
1140
1150
 
1141
1151
  Watir.tag_to_class[:command] = Command
1142
1152
  #
1153
+ # @return [Data]
1154
+ #
1155
+
1156
+ def data(*args)
1157
+ Data.new(self, extract_selector(args).merge(:tag_name => "data"))
1158
+ end
1159
+
1160
+ #
1161
+ # @return [DataCollection]
1162
+ #
1163
+
1164
+ def data(*args)
1165
+ DataCollection.new(self, extract_selector(args).merge(:tag_name => "data"))
1166
+ end
1167
+
1168
+ Watir.tag_to_class[:data] = Data
1169
+ #
1143
1170
  # @return [DataList]
1144
1171
  #
1145
1172
 
@@ -1202,7 +1229,7 @@ module Watir
1202
1229
  # @return [DetailsCollection]
1203
1230
  #
1204
1231
 
1205
- def details(*args)
1232
+ def detailses(*args)
1206
1233
  DetailsCollection.new(self, extract_selector(args).merge(:tag_name => "details"))
1207
1234
  end
1208
1235
 
@@ -2432,23 +2459,6 @@ module Watir
2432
2459
 
2433
2460
  Watir.tag_to_class[:thead] = TableSection
2434
2461
  #
2435
- # @return [Time]
2436
- #
2437
-
2438
- def time(*args)
2439
- Time.new(self, extract_selector(args).merge(:tag_name => "time"))
2440
- end
2441
-
2442
- #
2443
- # @return [TimeCollection]
2444
- #
2445
-
2446
- def times(*args)
2447
- TimeCollection.new(self, extract_selector(args).merge(:tag_name => "time"))
2448
- end
2449
-
2450
- Watir.tag_to_class[:time] = Time
2451
- #
2452
2462
  # @return [Title]
2453
2463
  #
2454
2464