watir-webdriver 0.0.7 → 0.0.8

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.
Files changed (111) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +48 -0
  3. data/Rakefile +23 -8
  4. data/VERSION +1 -1
  5. data/lib/watir-webdriver.rb +7 -5
  6. data/lib/watir-webdriver/browser.rb +9 -2
  7. data/lib/watir-webdriver/browserbot.js +5 -2
  8. data/lib/watir-webdriver/container.rb +6 -9
  9. data/lib/watir-webdriver/{collections/element_collection.rb → element_collection.rb} +5 -0
  10. data/lib/watir-webdriver/elements/button.rb +5 -4
  11. data/lib/watir-webdriver/{element.rb → elements/element.rb} +29 -5
  12. data/lib/watir-webdriver/elements/file_field.rb +21 -4
  13. data/lib/watir-webdriver/elements/frame.rb +1 -1
  14. data/lib/watir-webdriver/elements/generated.rb +750 -750
  15. data/lib/watir-webdriver/elements/image.rb +6 -0
  16. data/lib/watir-webdriver/elements/link.rb +0 -4
  17. data/lib/watir-webdriver/elements/select.rb +22 -24
  18. data/lib/watir-webdriver/elements/table_row.rb +11 -1
  19. data/lib/watir-webdriver/elements/text_field.rb +5 -15
  20. data/lib/watir-webdriver/extensions/wait.rb +107 -0
  21. data/lib/watir-webdriver/html/generator.rb +1 -1
  22. data/lib/watir-webdriver/html/util.rb +1 -10
  23. data/lib/watir-webdriver/html/visitor.rb +2 -14
  24. data/lib/watir-webdriver/locators/button_locator.rb +22 -3
  25. data/lib/watir-webdriver/locators/element_locator.rb +54 -28
  26. data/lib/watir-webdriver/locators/table_row_locator.rb +3 -1
  27. data/lib/watir-webdriver/locators/text_field_locator.rb +7 -3
  28. data/lib/watir-webdriver/window_switching.rb +78 -0
  29. data/spec/browser_spec.rb +43 -0
  30. data/spec/container_spec.rb +43 -0
  31. data/spec/element_locator_spec.rb +305 -0
  32. data/spec/element_spec.rb +34 -5
  33. data/spec/html/closeable.html +13 -0
  34. data/spec/html/data_attributes.html +9 -0
  35. data/spec/html/wait.html +27 -0
  36. data/spec/html/window_switching.html +12 -0
  37. data/spec/input_spec.rb +14 -2
  38. data/spec/locator_spec_helper.rb +37 -0
  39. data/spec/spec_helper.rb +3 -0
  40. data/spec/wait_spec.rb +98 -0
  41. data/spec/watirspec/area_spec.rb +4 -4
  42. data/spec/watirspec/browser_spec.rb +37 -35
  43. data/spec/watirspec/button_spec.rb +22 -17
  44. data/spec/watirspec/buttons_spec.rb +1 -1
  45. data/spec/watirspec/checkbox_spec.rb +4 -0
  46. data/spec/watirspec/checkboxes_spec.rb +1 -1
  47. data/spec/watirspec/collections_spec.rb +4 -2
  48. data/spec/watirspec/dd_spec.rb +4 -0
  49. data/spec/watirspec/dds_spec.rb +1 -1
  50. data/spec/watirspec/del_spec.rb +4 -0
  51. data/spec/watirspec/dels_spec.rb +1 -1
  52. data/spec/watirspec/div_spec.rb +38 -12
  53. data/spec/watirspec/divs_spec.rb +1 -1
  54. data/spec/watirspec/dl_spec.rb +20 -6
  55. data/spec/watirspec/dls_spec.rb +1 -1
  56. data/spec/watirspec/dt_spec.rb +4 -0
  57. data/spec/watirspec/dts_spec.rb +1 -1
  58. data/spec/watirspec/em_spec.rb +4 -0
  59. data/spec/watirspec/ems_spec.rb +1 -1
  60. data/spec/watirspec/filefield_spec.rb +37 -2
  61. data/spec/watirspec/filefields_spec.rb +1 -1
  62. data/spec/watirspec/font_spec.rb +4 -0
  63. data/spec/watirspec/form_spec.rb +4 -0
  64. data/spec/watirspec/forms_spec.rb +6 -4
  65. data/spec/watirspec/frame_spec.rb +6 -0
  66. data/spec/watirspec/hidden_spec.rb +5 -4
  67. data/spec/watirspec/hiddens_spec.rb +1 -1
  68. data/spec/watirspec/hn_spec.rb +4 -0
  69. data/spec/watirspec/image_spec.rb +4 -0
  70. data/spec/watirspec/images_spec.rb +1 -1
  71. data/spec/watirspec/ins_spec.rb +4 -0
  72. data/spec/watirspec/inses_spec.rb +1 -1
  73. data/spec/watirspec/label_spec.rb +4 -0
  74. data/spec/watirspec/labels_spec.rb +2 -2
  75. data/spec/watirspec/li_spec.rb +4 -0
  76. data/spec/watirspec/link_spec.rb +15 -10
  77. data/spec/watirspec/links_spec.rb +6 -0
  78. data/spec/watirspec/lis_spec.rb +1 -1
  79. data/spec/watirspec/map_spec.rb +4 -0
  80. data/spec/watirspec/maps_spec.rb +1 -1
  81. data/spec/watirspec/meta_spec.rb +4 -0
  82. data/spec/watirspec/metas_spec.rb +1 -1
  83. data/spec/watirspec/ol_spec.rb +23 -9
  84. data/spec/watirspec/option_spec.rb +19 -7
  85. data/spec/watirspec/p_spec.rb +4 -0
  86. data/spec/watirspec/pre_spec.rb +4 -0
  87. data/spec/watirspec/pres_spec.rb +1 -1
  88. data/spec/watirspec/ps_spec.rb +1 -1
  89. data/spec/watirspec/radio_spec.rb +22 -13
  90. data/spec/watirspec/radios_spec.rb +6 -0
  91. data/spec/watirspec/select_list_spec.rb +29 -17
  92. data/spec/watirspec/select_lists_spec.rb +6 -0
  93. data/spec/watirspec/span_spec.rb +10 -2
  94. data/spec/watirspec/spans_spec.rb +1 -1
  95. data/spec/watirspec/strong_spec.rb +14 -4
  96. data/spec/watirspec/table_body_spec.rb +4 -0
  97. data/spec/watirspec/table_cell_spec.rb +9 -3
  98. data/spec/watirspec/table_cells_spec.rb +0 -1
  99. data/spec/watirspec/table_footer_spec.rb +4 -0
  100. data/spec/watirspec/table_header_spec.rb +4 -0
  101. data/spec/watirspec/table_row_spec.rb +15 -7
  102. data/spec/watirspec/table_rows_spec.rb +2 -2
  103. data/spec/watirspec/table_spec.rb +13 -7
  104. data/spec/watirspec/tables_spec.rb +1 -1
  105. data/spec/watirspec/text_field_spec.rb +21 -12
  106. data/spec/watirspec/text_fields_spec.rb +6 -0
  107. data/spec/watirspec/ul_spec.rb +4 -0
  108. data/spec/window_switching_spec.rb +116 -0
  109. data/watir-webdriver.gemspec +38 -16
  110. metadata +51 -27
  111. data/lib/watir-webdriver/collections/table_row_collection.rb +0 -11
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,48 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ watir-webdriver (0.0.7)
5
+ selenium-webdriver (>= 0.0.26)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activesupport (3.0.0)
11
+ ffi (0.6.3)
12
+ rake (>= 0.8.7)
13
+ json_pure (1.4.6)
14
+ nokogiri (1.4.3.1)
15
+ polyglot (0.3.1)
16
+ rack (1.2.1)
17
+ rake (0.8.7)
18
+ rspec (1.3.0)
19
+ ruby2ruby (1.2.4)
20
+ ruby_parser (~> 2.0)
21
+ sexp_processor (~> 3.0)
22
+ ruby_parser (2.0.4)
23
+ sexp_processor (~> 3.0)
24
+ rubyzip (0.9.4)
25
+ selenium-webdriver (0.0.28)
26
+ ffi (>= 0.6.1)
27
+ json_pure
28
+ rubyzip
29
+ sexp_processor (3.0.4)
30
+ sinatra (1.0)
31
+ rack (>= 1.0)
32
+ treetop (1.4.8)
33
+ polyglot (>= 0.3.1)
34
+ webidl (0.0.5)
35
+ ruby2ruby
36
+ treetop
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ activesupport (>= 2.3.5)
43
+ nokogiri
44
+ rspec
45
+ selenium-webdriver (>= 0.0.26)
46
+ sinatra (>= 1.0)
47
+ watir-webdriver!
48
+ webidl (>= 0.0.4)
data/Rakefile CHANGED
@@ -11,13 +11,14 @@ begin
11
11
  gem.homepage = "http://github.com/jarib/watir-webdriver"
12
12
  gem.authors = ["Jari Bakken"]
13
13
 
14
- gem.add_dependency "selenium-webdriver", '>= 0.0.26'
14
+ gem.add_dependency "selenium-webdriver", '>= 0.0.28'
15
15
 
16
16
  gem.add_development_dependency "rspec"
17
+ gem.add_development_dependency "yard", "~> 0.6"
17
18
  gem.add_development_dependency "webidl", ">= 0.0.4"
18
- gem.add_development_dependency "sinatra", ">= 1.0"
19
+ gem.add_development_dependency "sinatra", "~> 1.0"
19
20
  gem.add_development_dependency "nokogiri"
20
- gem.add_development_dependency "activesupport", ">= 2.3.5" # for pluralization during code generation
21
+ gem.add_development_dependency "activesupport", "~> 2.3.5" # for pluralization during code generation
21
22
  end
22
23
 
23
24
  Jeweler::GemcutterTasks.new
@@ -31,11 +32,25 @@ Spec::Rake::SpecTask.new(:spec) do |spec|
31
32
  spec.spec_files = FileList['spec/**/*_spec.rb']
32
33
  end
33
34
 
34
- Spec::Rake::SpecTask.new(:rcov) do |spec|
35
- spec.libs << 'lib' << 'spec'
36
- spec.pattern = 'spec/**/*_spec.rb'
37
- spec.rcov = true
38
- spec.rcov_opts = %w[--exclude spec,ruby-debug,/Library/Ruby,.gem --include lib/watir-webdriver]
35
+ namespace :spec do
36
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
37
+ spec.libs << 'lib' << 'spec'
38
+ spec.pattern = 'spec/**/*_spec.rb'
39
+ spec.rcov = true
40
+ spec.rcov_opts = %w[--exclude spec,ruby-debug,/Library/Ruby,.gem --include lib/watir-webdriver]
41
+ end
42
+
43
+ desc 'Run specs for CI'
44
+ Spec::Rake::SpecTask.new(:ci) do |spec|
45
+ spec.libs << 'lib' << 'spec'
46
+ spec.pattern = 'spec/**/*_spec.rb'
47
+ spec.spec_opts = ["--format", "html:results/#{RUBY_PLATFORM}/#{ENV['WATIR_WEBDRIVER_BROWSER'] || 'firefox'}/spec-results.html",
48
+ "--format", "progress",
49
+ "--backtrace"]
50
+ spec.rcov = true
51
+ spec.rcov_opts = %w[--exclude spec,ruby-debug,/Library/Ruby,.gem --include lib/watir-webdriver]
52
+ end
53
+
39
54
  end
40
55
 
41
56
  task :spec => :check_dependencies
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -5,6 +5,7 @@ require "json"
5
5
  require "watir-webdriver/core_ext/string"
6
6
  require "watir-webdriver/exception"
7
7
  require "watir-webdriver/xpath_support"
8
+ require "watir-webdriver/window_switching"
8
9
  require "watir-webdriver/container"
9
10
  require "watir-webdriver/locators/element_locator"
10
11
  require "watir-webdriver/locators/button_locator"
@@ -28,8 +29,8 @@ module Watir
28
29
  end
29
30
 
30
31
  require "watir-webdriver/attribute_helper"
31
- require "watir-webdriver/element"
32
- require "watir-webdriver/collections/element_collection"
32
+ require "watir-webdriver/element_collection"
33
+ require "watir-webdriver/elements/element"
33
34
  require "watir-webdriver/elements/generated"
34
35
  require "watir-webdriver/elements/frame"
35
36
  require "watir-webdriver/elements/input"
@@ -47,7 +48,6 @@ require "watir-webdriver/elements/form"
47
48
  require "watir-webdriver/elements/option"
48
49
  require "watir-webdriver/elements/table"
49
50
  require "watir-webdriver/elements/table_row"
50
- require "watir-webdriver/collections/table_row_collection"
51
51
 
52
52
  Watir.tag_to_class.freeze
53
53
 
@@ -65,6 +65,8 @@ end # Watir
65
65
 
66
66
 
67
67
  # undefine deprecated methods to use them for Element attributes
68
- Object.send :undef_method, :id if Object.method_defined? "id"
69
- Object.send :undef_method, :type if Object.method_defined? "type"
68
+ class Object
69
+ undef_method :id if method_defined? "id"
70
+ undef_method :type if method_defined? "type"
71
+ end
70
72
 
@@ -1,7 +1,13 @@
1
1
  # encoding: utf-8
2
2
  module Watir
3
+
4
+ #
5
+ # The main class through which you control the browser.
6
+ #
7
+
3
8
  class Browser
4
9
  include Container
10
+ include WindowSwitching
5
11
 
6
12
  attr_reader :driver
7
13
  alias_method :wd, :driver # ensures duck typing with Watir::Element
@@ -49,7 +55,7 @@ module Watir
49
55
  #
50
56
 
51
57
  def goto(uri)
52
- uri = "http://#{uri}" unless uri.include?("://") || uri =~ /^\w+:/
58
+ uri = "http://#{uri}" unless uri.include?("://")
53
59
 
54
60
  @driver.navigate.to uri
55
61
  run_checkers
@@ -89,6 +95,7 @@ module Watir
89
95
  end
90
96
 
91
97
  def html
98
+ # use body.html instead?
92
99
  @driver.page_source
93
100
  end
94
101
 
@@ -106,7 +113,7 @@ module Watir
106
113
  returned = @driver.execute_script(script, *args)
107
114
 
108
115
  if returned.kind_of? WebDriver::Element
109
- Watir.element_class_for(returned.tag_name).new(self, :element, returned)
116
+ Watir.element_class_for(returned.tag_name).new(self, :element => returned)
110
117
  else
111
118
  returned
112
119
  end
@@ -20,7 +20,7 @@ var browserbot = {
20
20
  }
21
21
 
22
22
  evt.initEvent(eventType, canBubble, true);
23
- element.dispatchEvent(evt);
23
+ return element.dispatchEvent(evt);
24
24
  }
25
25
  },
26
26
 
@@ -29,7 +29,10 @@ var browserbot = {
29
29
  var range = document.createRange();
30
30
  range.selectNodeContents(document.documentElement);
31
31
  selection.addRange(range);
32
- return selection.toString();
32
+ var string = selection.toString();
33
+ selection.removeAllRanges();
34
+
35
+ return string;
33
36
  },
34
37
 
35
38
  getOuterHTML: function(element) {
@@ -17,18 +17,15 @@ module Watir
17
17
  def extract_selector(selectors)
18
18
  case selectors.size
19
19
  when 2
20
- { selectors[0] => selectors[1] }
20
+ return { selectors[0] => selectors[1] }
21
21
  when 1
22
- unless selectors.first.kind_of? Hash
23
- raise ArgumentError, "expected Hash or (:how, 'what')"
24
- end
25
-
26
- selectors.first
22
+ obj = selectors.first
23
+ return obj if obj.kind_of? Hash
27
24
  when 0
28
- {}
29
- else
30
- raise ArgumentError, selectors.inspect
25
+ return {}
31
26
  end
27
+
28
+ raise ArgumentError, "expected Hash or (:how, 'what'), got #{selectors.inspect}"
32
29
  end
33
30
 
34
31
  end # Container
@@ -1,5 +1,10 @@
1
1
  # encoding: utf-8
2
2
  module Watir
3
+
4
+ #
5
+ # Base class for element collections.
6
+ #
7
+
3
8
  class ElementCollection
4
9
  include Enumerable
5
10
 
@@ -15,12 +15,13 @@ module Watir
15
15
 
16
16
  def self.from(parent, element)
17
17
  if element.tag_name == "button" ||
18
- element.tag_name == "input" && %w[submit reset image button].include?(element.attribute(:type))
18
+ element.tag_name == "input" && ButtonLocator::VALID_TYPES.include?(element.attribute(:type))
19
19
  Button.new(parent, :element => element)
20
20
  else
21
- raise TypeError, "expected button or input[@type=submit|reset|image|button] for #{element.inspect}"
21
+ raise TypeError, "expected button or input[@type=#{ButtonLocator::VALID_TYPES.join("|")}] for #{element.inspect}"
22
22
  end
23
23
  end
24
+
24
25
  #
25
26
  # Returns the text of the button.
26
27
  #
@@ -32,9 +33,9 @@ module Watir
32
33
  assert_exists
33
34
  case @element.tag_name
34
35
  when 'input'
35
- value
36
+ @element.attribute(:value)
36
37
  when 'button'
37
- text
38
+ @element.text
38
39
  else
39
40
  raise Exception::Error, "unknown tag name for button: #{@element.tag_name}"
40
41
  end
@@ -1,12 +1,17 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Watir
4
+
5
+ #
6
+ # Base class for HTML elements.
7
+ #
8
+
4
9
  class Element
5
10
  include Exception
6
11
  include Container
7
12
  include Selenium
8
13
  extend AttributeHelper
9
-
14
+
10
15
  def initialize(parent, selector)
11
16
  @parent = parent
12
17
  @selector = selector
@@ -36,6 +41,16 @@ module Watir
36
41
  end
37
42
  end
38
43
 
44
+ def ==(other)
45
+ assert_exists
46
+ @element == other.element
47
+ end
48
+ alias_method :eql?, :==
49
+
50
+ def hash
51
+ @element ? @element.hash : super
52
+ end
53
+
39
54
  def text
40
55
  assert_exists
41
56
  @element.text
@@ -70,8 +85,8 @@ module Watir
70
85
  end
71
86
 
72
87
  def flash
73
- assert_exists
74
- original_color = driver.execute_script("arguments[0].style.backgroundColor", @element)
88
+ original_color = style("backgroundColor")
89
+
75
90
  10.times do |n|
76
91
  color = (n % 2 == 0) ? "red" : original_color
77
92
  driver.execute_script("arguments[0].style.backgroundColor = '#{color}'", @element)
@@ -82,7 +97,7 @@ module Watir
82
97
  assert_exists
83
98
 
84
99
  begin
85
- @element.value
100
+ @element.value || ''
86
101
  rescue WebDriver::Error::ElementNotEnabledError
87
102
  ""
88
103
  end
@@ -150,7 +165,7 @@ module Watir
150
165
  assert_exists
151
166
  @element.style property
152
167
  else
153
- attribute_value "style" || ''
168
+ attribute_value("style") || ''
154
169
  end
155
170
  end
156
171
 
@@ -197,5 +212,14 @@ module Watir
197
212
  raise ObjectReadOnlyException if respond_to?(:readonly?) && readonly?
198
213
  end
199
214
 
215
+ def method_missing(meth, *args, &blk)
216
+ method = meth.to_s
217
+ if method =~ /^data_(.+)$/
218
+ attribute_value(method.gsub(/_/, '-'), *args)
219
+ else
220
+ super
221
+ end
222
+ end
223
+
200
224
  end # Element
201
225
  end # Watir
@@ -12,18 +12,35 @@ module Watir
12
12
  #
13
13
  # Set the file field to the given path
14
14
  #
15
- # @param [String] a value
15
+ # @param [String] a path
16
16
  #
17
+ # @raise [Errno::ENOENT] if the file doesn't exist
18
+ #
19
+
20
+ def set(path)
21
+ raise Errno::ENOENT, path unless File.exist?(path)
22
+ self.value = path
23
+ end
17
24
 
18
- def set(value)
25
+ #
26
+ # Set the file field to the given path
27
+ #
28
+ # @param [String] a path
29
+ #
30
+ def value=(path)
19
31
  assert_exists
20
- value.gsub!(File::SEPARATOR, File::ALT_SEPARATOR) if File::ALT_SEPARATOR
21
- @element.send_keys value
32
+ path = path.gsub(File::SEPARATOR, File::ALT_SEPARATOR) if File::ALT_SEPARATOR
33
+ @element.send_keys path
22
34
  end
23
35
 
24
36
  #
25
37
  # Return the value of this field
26
38
  #
39
+ # In IE, the path returned depends on the "Include local directory path
40
+ # when uploading files to a server" security setting:
41
+ #
42
+ # @see http://msdn.microsoft.com/en-us/library/ms535128(VS.85).aspx
43
+ #
27
44
  # @return [String]
28
45
  #
29
46
 
@@ -55,7 +55,7 @@ module Watir
55
55
  end
56
56
 
57
57
  def locate_frame
58
- loc = VALID_LOCATORS.find { |loc| @selector[loc] }
58
+ loc = VALID_LOCATORS.find { |loc| @selector.has_key? loc }
59
59
 
60
60
  unless loc
61
61
  raise MissingWayOfFindingObjectException, "can only locate frames by #{VALID_LOCATORS.inspect}"
@@ -20,6 +20,16 @@ module Watir
20
20
 
21
21
 
22
22
 
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
23
33
 
24
34
 
25
35
 
@@ -32,23 +42,39 @@ module Watir
32
42
 
33
43
 
34
44
  class HTMLElement < Element
35
- attributes(:token_list => ([:class_list, :item_ref, :item_prop]), :style => ([:style]), :string_map => ([:dataset]), :string => ([:innerhtml, :outerhtml, :id, :title, :lang, :dir, :class_name, :item_type, :item_id, :item_value, :access_key, :access_key_label, :content_editable, :command_type, :label, :icon]), :properties_collection => ([:properties]), :int => ([:tab_index]), :html_element => ([:context_menu]), :function => ([:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :oncuechange, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :onformchange, :onforminput, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting]), :bool => ([:item_scope, :hidden, :draggable, :is_content_editable, :spellcheck, :disabled, :checked]))
45
+ 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, :label, :icon], :token_list => [:class_list, :item_ref, :item_prop], :string_map => [:dataset], :bool => [:item_scope, :hidden, :draggable, :is_content_editable, :spellcheck, :disabled, :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, :onformchange, :onforminput, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting])
36
46
  end
37
47
  class HTMLElementCollection < ElementCollection
38
48
  def element_class
39
49
  HTMLElement
40
50
  end
41
51
  end
52
+ class Font < HTMLElement
53
+ attributes(:string => [:color, :face, :size])
54
+ end
55
+ class FontCollection < ElementCollection
56
+ def element_class
57
+ Font
58
+ end
59
+ end
42
60
  class Directory < HTMLElement
43
- attributes(:bool => ([:compact]))
61
+ attributes(:bool => [:compact])
44
62
  end
45
63
  class DirectoryCollection < ElementCollection
46
64
  def element_class
47
65
  Directory
48
66
  end
49
67
  end
68
+ class BaseFont < HTMLElement
69
+ attributes(:string => [:color, :face], :int => [:size])
70
+ end
71
+ class BaseFontCollection < ElementCollection
72
+ def element_class
73
+ BaseFont
74
+ end
75
+ end
50
76
  class Frame < HTMLElement
51
- attributes(:string => ([:frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src]), :bool => ([:no_resize]), :document => ([:content_document]))
77
+ attributes(:string => [:frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src], :bool => [:no_resize], :document => [:content_document])
52
78
  end
53
79
  class FrameCollection < ElementCollection
54
80
  def element_class
@@ -56,23 +82,39 @@ module Watir
56
82
  end
57
83
  end
58
84
  class FrameSet < HTMLElement
59
- attributes(:string => ([:cols, :rows]), :function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onredo, :onresize, :onstorage, :onundo, :onunload]))
85
+ attributes(:string => [:cols, :rows], :function => [:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onredo, :onresize, :onstorage, :onundo, :onunload])
60
86
  end
61
87
  class FrameSetCollection < ElementCollection
62
88
  def element_class
63
89
  FrameSet
64
90
  end
65
91
  end
92
+ class Marquee < HTMLElement
93
+ attributes(:string => [:behavior, :bg_color, :direction, :height, :true_speed, :width], :int => [:hspace, :loop, :scroll_amount, :scroll_delay, :vspace], :function => [:onbounce, :onfinish, :onstart])
94
+ end
95
+ class MarqueeCollection < ElementCollection
96
+ def element_class
97
+ Marquee
98
+ end
99
+ end
66
100
  class Applet < HTMLElement
67
- attributes(:string => ([:align, :alt, :archive, :code, :code_base, :height, :name, :object, :width]), :int => ([:hspace, :vspace]))
101
+ attributes(:string => [:align, :alt, :archive, :code, :code_base, :height, :name, :object, :width], :int => [:hspace, :vspace])
68
102
  end
69
103
  class AppletCollection < ElementCollection
70
104
  def element_class
71
105
  Applet
72
106
  end
73
107
  end
108
+ class Device < HTMLElement
109
+ attributes(:string => [:type, :data])
110
+ end
111
+ class DeviceCollection < ElementCollection
112
+ def element_class
113
+ Device
114
+ end
115
+ end
74
116
  class Menu < HTMLElement
75
- attributes(:string => ([:type, :label]))
117
+ attributes(:string => [:type, :label])
76
118
  end
77
119
  class MenuCollection < ElementCollection
78
120
  def element_class
@@ -80,19 +122,27 @@ module Watir
80
122
  end
81
123
  end
82
124
  class Menu < HTMLElement
83
- attributes(:bool => ([:compact]))
125
+ attributes(:bool => [:compact])
84
126
  end
85
127
  # do nothing
86
128
  class Command < HTMLElement
87
- attributes(:string => ([:type, :label, :icon, :radiogroup]), :bool => ([:disabled, :checked]))
129
+ attributes(:string => [:type, :label, :icon, :radiogroup], :bool => [:disabled, :checked])
88
130
  end
89
131
  class CommandCollection < ElementCollection
90
132
  def element_class
91
133
  Command
92
134
  end
93
135
  end
136
+ class Details < HTMLElement
137
+ attributes(:bool => [:open])
138
+ end
139
+ class DetailsCollection < ElementCollection
140
+ def element_class
141
+ Details
142
+ end
143
+ end
94
144
  class Meter < HTMLElement
95
- attributes(:float => ([:value, :min, :max, :low, :high, :optimum]), :list => ([:labels]), :html_element => ([:form]))
145
+ attributes(:float => [:value, :min, :max, :low, :high, :optimum], :html_element => [:form], :list => [:labels])
96
146
  end
97
147
  class MeterCollection < ElementCollection
98
148
  def element_class
@@ -100,15 +150,23 @@ module Watir
100
150
  end
101
151
  end
102
152
  class Progress < HTMLElement
103
- attributes(:float => ([:value, :max, :position]), :list => ([:labels]), :html_element => ([:form]))
153
+ attributes(:float => [:value, :max, :position], :html_element => [:form], :list => [:labels])
104
154
  end
105
155
  class ProgressCollection < ElementCollection
106
156
  def element_class
107
157
  Progress
108
158
  end
109
159
  end
160
+ class Output < HTMLElement
161
+ attributes(:token_list => [:html_for], :html_element => [:form], :string => [:name, :type, :default_value, :value, :validity, :validation_message], :bool => [:will_validate], :list => [:labels])
162
+ end
163
+ class OutputCollection < ElementCollection
164
+ def element_class
165
+ Output
166
+ end
167
+ end
110
168
  class Keygen < HTMLElement
111
- attributes(:string => ([:challenge, :keytype, :name, :type, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
169
+ attributes(:bool => [:autofocus, :disabled, :will_validate], :string => [:challenge, :keytype, :name, :type, :validity, :validation_message], :html_element => [:form], :list => [:labels])
112
170
  end
113
171
  class KeygenCollection < ElementCollection
114
172
  def element_class
@@ -116,7 +174,7 @@ module Watir
116
174
  end
117
175
  end
118
176
  class TextArea < HTMLElement
119
- attributes(:string => ([:name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message]), :int => ([:cols, :max_length, :rows, :text_length, :selection_start, :selection_end]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :read_only, :required, :will_validate]))
177
+ attributes(:bool => [:autofocus, :disabled, :read_only, :required, :will_validate], :int => [:cols, :max_length, :rows, :text_length, :selection_start, :selection_end], :html_element => [:form], :string => [:name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message], :list => [:labels])
120
178
  end
121
179
  class TextAreaCollection < ElementCollection
122
180
  def element_class
@@ -124,23 +182,47 @@ module Watir
124
182
  end
125
183
  end
126
184
  class Option < HTMLElement
127
- attributes(:string => ([:label, :value, :text]), :int => ([:index]), :html_element => ([:form]), :bool => ([:disabled, :default_selected, :selected]))
185
+ attributes(:bool => [:disabled, :default_selected, :selected], :html_element => [:form], :string => [:label, :value, :text], :int => [:index])
128
186
  end
129
187
  class OptionCollection < ElementCollection
130
188
  def element_class
131
189
  Option
132
190
  end
133
191
  end
192
+ class OptGroup < HTMLElement
193
+ attributes(:bool => [:disabled], :string => [:label])
194
+ end
195
+ class OptGroupCollection < ElementCollection
196
+ def element_class
197
+ OptGroup
198
+ end
199
+ end
134
200
  class DataList < HTMLElement
135
- attributes(:html_collection => ([:options]))
201
+ attributes(:html_collection => [:options])
136
202
  end
137
203
  class DataListCollection < ElementCollection
138
204
  def element_class
139
205
  DataList
140
206
  end
141
207
  end
208
+ class Select < HTMLElement
209
+ 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])
210
+ end
211
+ class SelectCollection < ElementCollection
212
+ def element_class
213
+ Select
214
+ end
215
+ end
216
+ class Button < HTMLElement
217
+ 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])
218
+ end
219
+ class ButtonCollection < ElementCollection
220
+ def element_class
221
+ Button
222
+ end
223
+ end
142
224
  class Input < HTMLElement
143
- attributes(:string => ([:accept, :alt, :autocomplete, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message]), :float => ([:value_as_number]), :int => ([:max_length, :size, :selection_start, :selection_end]), :list => ([:files, :labels]), :html_element => ([:form, :list, :selected_option]), :bool => ([:autofocus, :default_checked, :checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate]), :date => ([:value_as_date]))
225
+ attributes(:string => [:accept, :alt, :autocomplete, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message], :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])
144
226
  end
145
227
  class InputCollection < ElementCollection
146
228
  def element_class
@@ -148,11 +230,11 @@ module Watir
148
230
  end
149
231
  end
150
232
  class Input < HTMLElement
151
- attributes(:string => ([:align, :use_map]))
233
+ attributes(:string => [:align, :use_map])
152
234
  end
153
235
  # do nothing
154
236
  class Label < HTMLElement
155
- attributes(:string => ([:html_for]), :html_element => ([:form, :control]))
237
+ attributes(:html_element => [:form, :control], :string => [:html_for])
156
238
  end
157
239
  class LabelCollection < ElementCollection
158
240
  def element_class
@@ -160,7 +242,7 @@ module Watir
160
242
  end
161
243
  end
162
244
  class Legend < HTMLElement
163
- attributes(:html_element => ([:form]))
245
+ attributes(:html_element => [:form])
164
246
  end
165
247
  class LegendCollection < ElementCollection
166
248
  def element_class
@@ -168,19 +250,55 @@ module Watir
168
250
  end
169
251
  end
170
252
  class Legend < HTMLElement
171
- attributes(:string => ([:align]))
253
+ attributes(:string => [:align])
172
254
  end
173
255
  # do nothing
256
+ class FieldSet < HTMLElement
257
+ attributes(:bool => [:disabled, :will_validate], :html_element => [:form], :string => [:name, :type, :validity, :validation_message], :html_collection => [:elements])
258
+ end
259
+ class FieldSetCollection < ElementCollection
260
+ def element_class
261
+ FieldSet
262
+ end
263
+ end
174
264
  class Form < HTMLElement
175
- attributes(:string => ([:accept_charset, :action, :autocomplete, :enctype, :method, :name, :target]), :int => ([:length]), :html_collection => ([:elements]), :bool => ([:no_validate]))
265
+ attributes(:string => [:accept_charset, :action, :autocomplete, :enctype, :method, :name, :target], :bool => [:no_validate], :html_collection => [:elements], :int => [:length])
176
266
  end
177
267
  class FormCollection < ElementCollection
178
268
  def element_class
179
269
  Form
180
270
  end
181
271
  end
272
+ class TableCell < HTMLElement
273
+ attributes(:int => [:col_span, :row_span, :cell_index], :token_list => [:headers])
274
+ end
275
+ class TableCellCollection < ElementCollection
276
+ def element_class
277
+ TableCell
278
+ end
279
+ end
280
+ class TableCell < HTMLElement
281
+ attributes(:string => [:abbr, :align, :axis, :bg_color, :ch, :ch_off, :height, :v_align, :width], :bool => [:no_wrap])
282
+ end
283
+ # do nothing
284
+ class TableHeaderCell < TableCell
285
+ attributes(:string => [:scope])
286
+ end
287
+ class TableHeaderCellCollection < ElementCollection
288
+ def element_class
289
+ TableHeaderCell
290
+ end
291
+ end
292
+ class TableDataCell < TableCell
293
+ # do nothing
294
+ end
295
+ class TableDataCellCollection < ElementCollection
296
+ def element_class
297
+ TableDataCell
298
+ end
299
+ end
182
300
  class TableRow < HTMLElement
183
- attributes(:int => ([:row_index, :section_row_index]), :html_collection => ([:cells]))
301
+ attributes(:int => [:row_index, :section_row_index], :html_collection => [:cells])
184
302
  end
185
303
  class TableRowCollection < ElementCollection
186
304
  def element_class
@@ -188,11 +306,11 @@ module Watir
188
306
  end
189
307
  end
190
308
  class TableRow < HTMLElement
191
- attributes(:string => ([:align, :bg_color, :ch, :ch_off, :v_align]))
309
+ attributes(:string => [:align, :bg_color, :ch, :ch_off, :v_align])
192
310
  end
193
311
  # do nothing
194
312
  class TableSection < HTMLElement
195
- attributes(:html_collection => ([:rows]))
313
+ attributes(:html_collection => [:rows])
196
314
  end
197
315
  class TableSectionCollection < ElementCollection
198
316
  def element_class
@@ -200,11 +318,11 @@ module Watir
200
318
  end
201
319
  end
202
320
  class TableSection < HTMLElement
203
- attributes(:string => ([:align, :ch, :ch_off, :v_align]))
321
+ attributes(:string => [:align, :ch, :ch_off, :v_align])
204
322
  end
205
323
  # do nothing
206
324
  class TableCol < HTMLElement
207
- attributes(:int => ([:span]))
325
+ attributes(:int => [:span])
208
326
  end
209
327
  class TableColCollection < ElementCollection
210
328
  def element_class
@@ -212,11 +330,23 @@ module Watir
212
330
  end
213
331
  end
214
332
  class TableCol < HTMLElement
215
- attributes(:string => ([:align, :ch, :ch_off, :v_align, :width]))
333
+ attributes(:string => [:align, :ch, :ch_off, :v_align, :width])
334
+ end
335
+ # do nothing
336
+ class TableCaption < HTMLElement
337
+ # do nothing
338
+ end
339
+ class TableCaptionCollection < ElementCollection
340
+ def element_class
341
+ TableCaption
342
+ end
343
+ end
344
+ class TableCaption < HTMLElement
345
+ attributes(:string => [:align])
216
346
  end
217
347
  # do nothing
218
348
  class Table < HTMLElement
219
- attributes(:string => ([:summary]), :html_element => ([:caption, :t_head, :t_foot]), :html_collection => ([:t_bodies, :rows]))
349
+ attributes(:html_element => [:caption, :t_head, :t_foot], :html_collection => [:t_bodies, :rows], :string => [:summary])
220
350
  end
221
351
  class TableCollection < ElementCollection
222
352
  def element_class
@@ -224,19 +354,39 @@ module Watir
224
354
  end
225
355
  end
226
356
  class Table < HTMLElement
227
- attributes(:string => ([:align, :bg_color, :border, :cell_padding, :cell_spacing, :frame, :rules, :width]))
357
+ attributes(:string => [:align, :bg_color, :border, :cell_padding, :cell_spacing, :frame, :rules, :width])
358
+ end
359
+ # do nothing
360
+ class Area < HTMLElement
361
+ attributes(:string => [:alt, :coords, :shape, :href, :target, :ping, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash], :token_list => [:rel_list])
362
+ end
363
+ class AreaCollection < ElementCollection
364
+ def element_class
365
+ Area
366
+ end
367
+ end
368
+ class Area < HTMLElement
369
+ attributes(:bool => [:no_href])
228
370
  end
229
371
  # do nothing
230
372
  class Map < HTMLElement
231
- attributes(:string => ([:name]), :html_collection => ([:areas, :images]))
373
+ attributes(:string => [:name], :html_collection => [:areas, :images])
232
374
  end
233
375
  class MapCollection < ElementCollection
234
376
  def element_class
235
377
  Map
236
378
  end
237
379
  end
380
+ class Canvas < HTMLElement
381
+ attributes(:int => [:width, :height])
382
+ end
383
+ class CanvasCollection < ElementCollection
384
+ def element_class
385
+ Canvas
386
+ end
387
+ end
238
388
  class Media < HTMLElement
239
- attributes(:string => ([:error, :src, :current_src, :preload, :buffered, :played, :seekable, :tracks]), :float => ([:current_time, :initial_time, :duration, :default_playback_rate, :playback_rate, :volume]), :int => ([:network_state, :ready_state]), :bool => ([:seeking, :paused, :ended, :autoplay, :loop, :controls, :muted]), :date => ([:start_offset_time]))
389
+ attributes(:string => [:error, :src, :current_src, :preload, :buffered, :played, :seekable, :tracks], :int => [:network_state, :ready_state], :bool => [:seeking, :paused, :ended, :autoplay, :loop, :controls, :muted], :float => [:current_time, :initial_time, :duration, :default_playback_rate, :playback_rate, :volume], :date => [:start_offset_time])
240
390
  end
241
391
  class MediaCollection < ElementCollection
242
392
  def element_class
@@ -252,15 +402,23 @@ module Watir
252
402
  end
253
403
  end
254
404
  class Video < Media
255
- attributes(:string => ([:width, :height, :poster]), :int => ([:video_width, :video_height]))
405
+ attributes(:string => [:width, :height, :poster], :int => [:video_width, :video_height])
256
406
  end
257
407
  class VideoCollection < ElementCollection
258
408
  def element_class
259
409
  Video
260
410
  end
261
411
  end
412
+ class Track < HTMLElement
413
+ attributes(:string => [:kind, :label, :src, :srclang, :track])
414
+ end
415
+ class TrackCollection < ElementCollection
416
+ def element_class
417
+ Track
418
+ end
419
+ end
262
420
  class Source < HTMLElement
263
- attributes(:string => ([:src, :type, :media]))
421
+ attributes(:string => [:src, :type, :media])
264
422
  end
265
423
  class SourceCollection < ElementCollection
266
424
  def element_class
@@ -268,7 +426,7 @@ module Watir
268
426
  end
269
427
  end
270
428
  class Param < HTMLElement
271
- attributes(:string => ([:name, :value]))
429
+ attributes(:string => [:name, :value])
272
430
  end
273
431
  class ParamCollection < ElementCollection
274
432
  def element_class
@@ -276,11 +434,11 @@ module Watir
276
434
  end
277
435
  end
278
436
  class Param < HTMLElement
279
- attributes(:string => ([:type, :value_type]))
437
+ attributes(:string => [:type, :value_type])
280
438
  end
281
439
  # do nothing
282
440
  class Object < HTMLElement
283
- attributes(:string => ([:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:will_validate]), :document => ([:content_document]))
441
+ attributes(:string => [:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message], :html_element => [:form], :document => [:content_document], :bool => [:will_validate])
284
442
  end
285
443
  class ObjectCollection < ElementCollection
286
444
  def element_class
@@ -288,11 +446,23 @@ module Watir
288
446
  end
289
447
  end
290
448
  class Object < HTMLElement
291
- attributes(:string => ([:align, :archive, :border, :code, :code_base, :code_type, :standby]), :int => ([:hspace, :vspace]), :bool => ([:declare]))
449
+ attributes(:string => [:align, :archive, :border, :code, :code_base, :code_type, :standby], :bool => [:declare], :int => [:hspace, :vspace])
450
+ end
451
+ # do nothing
452
+ class Embed < HTMLElement
453
+ attributes(:string => [:src, :type, :width, :height])
454
+ end
455
+ class EmbedCollection < ElementCollection
456
+ def element_class
457
+ Embed
458
+ end
459
+ end
460
+ class Embed < HTMLElement
461
+ attributes(:string => [:align, :name])
292
462
  end
293
463
  # do nothing
294
464
  class IFrame < HTMLElement
295
- attributes(:token_list => ([:sandbox]), :string => ([:src, :srcdoc, :name, :width, :height, :content_window]), :bool => ([:seamless]), :document => ([:content_document]))
465
+ attributes(:string => [:src, :srcdoc, :name, :width, :height, :content_window], :token_list => [:sandbox], :bool => [:seamless], :document => [:content_document])
296
466
  end
297
467
  class IFrameCollection < ElementCollection
298
468
  def element_class
@@ -300,11 +470,11 @@ module Watir
300
470
  end
301
471
  end
302
472
  class IFrame < HTMLElement
303
- attributes(:string => ([:align, :frame_border, :long_desc, :margin_height, :margin_width, :scrolling]))
473
+ attributes(:string => [:align, :frame_border, :long_desc, :margin_height, :margin_width, :scrolling])
304
474
  end
305
475
  # do nothing
306
476
  class Image < HTMLElement
307
- attributes(:string => ([:alt, :src, :use_map]), :int => ([:width, :height, :natural_width, :natural_height]), :bool => ([:is_map, :complete]))
477
+ attributes(:string => [:alt, :src, :use_map], :bool => [:is_map, :complete], :int => [:width, :height, :natural_width, :natural_height])
308
478
  end
309
479
  class ImageCollection < ElementCollection
310
480
  def element_class
@@ -312,11 +482,11 @@ module Watir
312
482
  end
313
483
  end
314
484
  class Image < HTMLElement
315
- attributes(:string => ([:name, :align, :border, :long_desc]), :int => ([:hspace, :vspace]))
485
+ attributes(:string => [:name, :align, :border, :long_desc], :int => [:hspace, :vspace])
316
486
  end
317
487
  # do nothing
318
488
  class Mod < HTMLElement
319
- attributes(:string => ([:cite, :date_time]))
489
+ attributes(:string => [:cite, :date_time])
320
490
  end
321
491
  class ModCollection < ElementCollection
322
492
  def element_class
@@ -332,7 +502,7 @@ module Watir
332
502
  end
333
503
  end
334
504
  class BR < HTMLElement
335
- attributes(:string => ([:clear]))
505
+ attributes(:string => [:clear])
336
506
  end
337
507
  # do nothing
338
508
  class Span < HTMLElement
@@ -343,205 +513,62 @@ module Watir
343
513
  Span
344
514
  end
345
515
  end
346
- class Anchor < HTMLElement
347
- attributes(:token_list => ([:rel_list]), :string => ([:href, :target, :ping, :rel, :media, :hreflang, :type, :text, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
516
+ class Time < HTMLElement
517
+ attributes(:string => [:date_time], :bool => [:pub_date], :date => [:value_as_date])
348
518
  end
349
- class AnchorCollection < ElementCollection
519
+ class TimeCollection < ElementCollection
350
520
  def element_class
351
- Anchor
521
+ Time
352
522
  end
353
523
  end
354
524
  class Anchor < HTMLElement
355
- attributes(:string => ([:coords, :charset, :name, :rev, :shape]))
356
- end
357
- # do nothing
358
- class DList < HTMLElement
359
- # do nothing
525
+ attributes(:string => [:href, :target, :ping, :rel, :media, :hreflang, :type, :text, :protocol, :host, :hostname, :port, :pathname, :search, :hash], :token_list => [:rel_list])
360
526
  end
361
- class DListCollection < ElementCollection
362
- def element_class
363
- DList
364
- end
365
- end
366
- class DList < HTMLElement
367
- attributes(:bool => ([:compact]))
368
- end
369
- # do nothing
370
- class LI < HTMLElement
371
- attributes(:int => ([:value]))
372
- end
373
- class LICollection < ElementCollection
374
- def element_class
375
- LI
376
- end
377
- end
378
- class LI < HTMLElement
379
- attributes(:string => ([:type]))
380
- end
381
- # do nothing
382
- class Pre < HTMLElement
383
- # do nothing
384
- end
385
- class PreCollection < ElementCollection
386
- def element_class
387
- Pre
388
- end
389
- end
390
- class Pre < HTMLElement
391
- attributes(:int => ([:width]))
392
- end
393
- # do nothing
394
- class HR < HTMLElement
395
- # do nothing
396
- end
397
- class HRCollection < ElementCollection
527
+ class AnchorCollection < ElementCollection
398
528
  def element_class
399
- HR
529
+ Anchor
400
530
  end
401
531
  end
402
- class HR < HTMLElement
403
- attributes(:string => ([:align, :color, :size, :width]), :bool => ([:no_shade]))
532
+ class Anchor < HTMLElement
533
+ attributes(:string => [:coords, :charset, :name, :rev, :shape])
404
534
  end
405
535
  # do nothing
406
- class Paragraph < HTMLElement
536
+ class Div < HTMLElement
407
537
  # do nothing
408
538
  end
409
- class ParagraphCollection < ElementCollection
539
+ class DivCollection < ElementCollection
410
540
  def element_class
411
- Paragraph
541
+ Div
412
542
  end
413
543
  end
414
- class Paragraph < HTMLElement
415
- attributes(:string => ([:align]))
544
+ class Div < HTMLElement
545
+ attributes(:string => [:align])
416
546
  end
417
547
  # do nothing
418
- class Heading < HTMLElement
548
+ class DList < HTMLElement
419
549
  # do nothing
420
550
  end
421
- class HeadingCollection < ElementCollection
422
- def element_class
423
- Heading
424
- end
425
- end
426
- class Heading < HTMLElement
427
- attributes(:string => ([:align]))
428
- end
429
- # do nothing
430
- class Body < HTMLElement
431
- attributes(:function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onstorage, :onundo, :onunload]))
432
- end
433
- class BodyCollection < ElementCollection
434
- def element_class
435
- Body
436
- end
437
- end
438
- class Body < HTMLElement
439
- attributes(:string => ([:text, :bg_color, :background, :link, :v_link, :a_link]))
440
- end
441
- # do nothing
442
- class Script < HTMLElement
443
- attributes(:string => ([:src, :type, :charset, :text]), :bool => ([:async, :defer]))
444
- end
445
- class ScriptCollection < ElementCollection
446
- def element_class
447
- Script
448
- end
449
- end
450
- class Script < HTMLElement
451
- attributes(:string => ([:event, :html_for]))
452
- end
453
- # do nothing
454
- class Style < HTMLElement
455
- attributes(:string => ([:media, :type]), :bool => ([:disabled, :scoped]))
456
- end
457
- class StyleCollection < ElementCollection
458
- def element_class
459
- Style
460
- end
461
- end
462
- class Meta < HTMLElement
463
- attributes(:string => ([:name, :http_equiv, :content]))
464
- end
465
- class MetaCollection < ElementCollection
551
+ class DListCollection < ElementCollection
466
552
  def element_class
467
- Meta
553
+ DList
468
554
  end
469
555
  end
470
- class Meta < HTMLElement
471
- attributes(:string => ([:scheme]))
556
+ class DList < HTMLElement
557
+ attributes(:bool => [:compact])
472
558
  end
473
559
  # do nothing
474
- class Base < HTMLElement
475
- attributes(:string => ([:href, :target]))
476
- end
477
- class BaseCollection < ElementCollection
478
- def element_class
479
- Base
480
- end
481
- end
482
- class Head < HTMLElement
483
- # do nothing
484
- end
485
- class HeadCollection < ElementCollection
486
- def element_class
487
- Head
488
- end
489
- end
490
-
491
- class Time < HTMLElement
492
- attributes(:string => ([:date_time]), :bool => ([:pub_date]), :date => ([:value_as_date]))
493
- end
494
- class TimeCollection < ElementCollection
495
- def element_class
496
- Time
497
- end
498
- end
499
-
500
-
501
-
502
-
503
- class Marquee < HTMLElement
504
- attributes(:string => ([:behavior, :bg_color, :direction, :height, :true_speed, :width]), :int => ([:hspace, :loop, :scroll_amount, :scroll_delay, :vspace]), :function => ([:onbounce, :onfinish, :onstart]))
505
- end
506
- class MarqueeCollection < ElementCollection
507
- def element_class
508
- Marquee
509
- end
510
- end
511
- class Font < HTMLElement
512
- attributes(:string => ([:color, :face, :size]))
513
- end
514
- class FontCollection < ElementCollection
515
- def element_class
516
- Font
517
- end
518
- end
519
- class TableCaption < HTMLElement
520
- # do nothing
560
+ class LI < HTMLElement
561
+ attributes(:int => [:value])
521
562
  end
522
- class TableCaptionCollection < ElementCollection
563
+ class LICollection < ElementCollection
523
564
  def element_class
524
- TableCaption
565
+ LI
525
566
  end
526
567
  end
527
- class TableCaption < HTMLElement
528
- attributes(:string => ([:align]))
568
+ class LI < HTMLElement
569
+ attributes(:string => [:type])
529
570
  end
530
571
  # do nothing
531
-
532
-
533
-
534
-
535
-
536
-
537
- class Select < HTMLElement
538
- attributes(:string => ([:name, :type, :value, :validity, :validation_message]), :int => ([:size, :length, :selected_index]), :list => ([:labels]), :html_element => ([:form]), :html_collection => ([:options, :selected_options]), :bool => ([:autofocus, :disabled, :multiple, :required, :will_validate]))
539
- end
540
- class SelectCollection < ElementCollection
541
- def element_class
542
- Select
543
- end
544
- end
545
572
  class UList < HTMLElement
546
573
  # do nothing
547
574
  end
@@ -551,1974 +578,1947 @@ module Watir
551
578
  end
552
579
  end
553
580
  class UList < HTMLElement
554
- attributes(:string => ([:type]), :bool => ([:compact]))
581
+ attributes(:bool => [:compact], :string => [:type])
555
582
  end
556
583
  # do nothing
557
-
558
- class OptGroup < HTMLElement
559
- attributes(:string => ([:label]), :bool => ([:disabled]))
560
- end
561
- class OptGroupCollection < ElementCollection
562
- def element_class
563
- OptGroup
564
- end
565
- end
566
- class Canvas < HTMLElement
567
- attributes(:int => ([:width, :height]))
568
- end
569
- class CanvasCollection < ElementCollection
570
- def element_class
571
- Canvas
572
- end
573
- end
574
- class TableCell < HTMLElement
575
- attributes(:token_list => ([:headers]), :int => ([:col_span, :row_span, :cell_index]))
584
+ class OList < HTMLElement
585
+ attributes(:bool => [:reversed], :int => [:start])
576
586
  end
577
- class TableCellCollection < ElementCollection
587
+ class OListCollection < ElementCollection
578
588
  def element_class
579
- TableCell
589
+ OList
580
590
  end
581
591
  end
582
- class TableCell < HTMLElement
583
- attributes(:string => ([:abbr, :align, :axis, :bg_color, :ch, :ch_off, :height, :v_align, :width]), :bool => ([:no_wrap]))
592
+ class OList < HTMLElement
593
+ attributes(:bool => [:compact], :string => [:type])
584
594
  end
585
595
  # do nothing
586
- class TableHeaderCell < TableCell
587
- attributes(:string => ([:scope]))
588
- end
589
- class TableHeaderCellCollection < ElementCollection
590
- def element_class
591
- TableHeaderCell
592
- end
593
- end
594
- class TableDataCell < TableCell
595
- # do nothing
596
- end
597
- class TableDataCellCollection < ElementCollection
598
- def element_class
599
- TableDataCell
600
- end
601
- end
602
596
  class Quote < HTMLElement
603
- attributes(:string => ([:cite]))
597
+ attributes(:string => [:cite])
604
598
  end
605
599
  class QuoteCollection < ElementCollection
606
600
  def element_class
607
601
  Quote
608
602
  end
609
603
  end
610
- class Div < HTMLElement
604
+ class Pre < HTMLElement
611
605
  # do nothing
612
606
  end
613
- class DivCollection < ElementCollection
607
+ class PreCollection < ElementCollection
614
608
  def element_class
615
- Div
609
+ Pre
616
610
  end
617
611
  end
618
- class Div < HTMLElement
619
- attributes(:string => ([:align]))
612
+ class Pre < HTMLElement
613
+ attributes(:int => [:width])
620
614
  end
621
615
  # do nothing
622
-
623
- class Device < HTMLElement
624
- attributes(:string => ([:type, :data]))
625
- end
626
- class DeviceCollection < ElementCollection
627
- def element_class
628
- Device
629
- end
630
- end
631
-
632
-
633
- class Output < HTMLElement
634
- attributes(:token_list => ([:html_for]), :string => ([:name, :type, :default_value, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:will_validate]))
616
+ class HR < HTMLElement
617
+ # do nothing
635
618
  end
636
- class OutputCollection < ElementCollection
619
+ class HRCollection < ElementCollection
637
620
  def element_class
638
- Output
621
+ HR
639
622
  end
640
623
  end
641
- class Track < HTMLElement
642
- attributes(:string => ([:kind, :label, :src, :srclang, :track]))
643
- end
644
- class TrackCollection < ElementCollection
645
- def element_class
646
- Track
647
- end
624
+ class HR < HTMLElement
625
+ attributes(:string => [:align, :color, :size, :width], :bool => [:no_shade])
648
626
  end
649
-
650
-
651
- class Embed < HTMLElement
652
- attributes(:string => ([:src, :type, :width, :height]))
627
+ # do nothing
628
+ class Paragraph < HTMLElement
629
+ # do nothing
653
630
  end
654
- class EmbedCollection < ElementCollection
631
+ class ParagraphCollection < ElementCollection
655
632
  def element_class
656
- Embed
633
+ Paragraph
657
634
  end
658
635
  end
659
- class Embed < HTMLElement
660
- attributes(:string => ([:align, :name]))
636
+ class Paragraph < HTMLElement
637
+ attributes(:string => [:align])
661
638
  end
662
639
  # do nothing
663
-
664
-
665
-
666
- class Area < HTMLElement
667
- attributes(:token_list => ([:rel_list]), :string => ([:alt, :coords, :shape, :href, :target, :ping, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
640
+ class Heading < HTMLElement
641
+ # do nothing
668
642
  end
669
- class AreaCollection < ElementCollection
643
+ class HeadingCollection < ElementCollection
670
644
  def element_class
671
- Area
645
+ Heading
672
646
  end
673
647
  end
674
- class Area < HTMLElement
675
- attributes(:bool => ([:no_href]))
648
+ class Heading < HTMLElement
649
+ attributes(:string => [:align])
676
650
  end
677
651
  # do nothing
678
-
679
- class OList < HTMLElement
680
- attributes(:int => ([:start]), :bool => ([:reversed]))
652
+ class Body < HTMLElement
653
+ attributes(:function => [:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onstorage, :onundo, :onunload])
681
654
  end
682
- class OListCollection < ElementCollection
655
+ class BodyCollection < ElementCollection
683
656
  def element_class
684
- OList
657
+ Body
685
658
  end
686
659
  end
687
- class OList < HTMLElement
688
- attributes(:string => ([:type]), :bool => ([:compact]))
660
+ class Body < HTMLElement
661
+ attributes(:string => [:text, :bg_color, :background, :link, :v_link, :a_link])
689
662
  end
690
663
  # do nothing
691
-
692
- class Unknown < HTMLElement
693
- # do nothing
664
+ class Script < HTMLElement
665
+ attributes(:string => [:src, :type, :charset, :text], :bool => [:async, :defer])
694
666
  end
695
- class UnknownCollection < ElementCollection
667
+ class ScriptCollection < ElementCollection
696
668
  def element_class
697
- Unknown
669
+ Script
698
670
  end
699
671
  end
700
- class Button < HTMLElement
701
- attributes(:string => ([:form_action, :form_enctype, :form_method, :form_no_validate, :form_target, :name, :type, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
672
+ class Script < HTMLElement
673
+ attributes(:string => [:event, :html_for])
702
674
  end
703
- class ButtonCollection < ElementCollection
675
+ # do nothing
676
+ class Style < HTMLElement
677
+ attributes(:bool => [:disabled, :scoped], :string => [:media, :type])
678
+ end
679
+ class StyleCollection < ElementCollection
704
680
  def element_class
705
- Button
681
+ Style
706
682
  end
707
683
  end
708
- class Html < HTMLElement
709
- # do nothing
684
+ class Meta < HTMLElement
685
+ attributes(:string => [:name, :http_equiv, :content])
710
686
  end
711
- class HtmlCollection < ElementCollection
687
+ class MetaCollection < ElementCollection
712
688
  def element_class
713
- Html
689
+ Meta
714
690
  end
715
691
  end
716
- class Html < HTMLElement
717
- attributes(:string => ([:version]))
692
+ class Meta < HTMLElement
693
+ attributes(:string => [:scheme])
718
694
  end
719
695
  # do nothing
696
+ class Base < HTMLElement
697
+ attributes(:string => [:href, :target])
698
+ end
699
+ class BaseCollection < ElementCollection
700
+ def element_class
701
+ Base
702
+ end
703
+ end
720
704
  class Title < HTMLElement
721
- attributes(:string => ([:text]))
705
+ attributes(:string => [:text])
722
706
  end
723
707
  class TitleCollection < ElementCollection
724
708
  def element_class
725
709
  Title
726
710
  end
727
711
  end
728
- class FieldSet < HTMLElement
729
- attributes(:string => ([:name, :type, :validity, :validation_message]), :html_element => ([:form]), :html_collection => ([:elements]), :bool => ([:disabled, :will_validate]))
712
+ class Head < HTMLElement
713
+ # do nothing
730
714
  end
731
- class FieldSetCollection < ElementCollection
715
+ class HeadCollection < ElementCollection
732
716
  def element_class
733
- FieldSet
717
+ Head
734
718
  end
735
719
  end
736
- class Details < HTMLElement
737
- attributes(:bool => ([:open]))
720
+ class Html < HTMLElement
721
+ # do nothing
738
722
  end
739
- class DetailsCollection < ElementCollection
723
+ class HtmlCollection < ElementCollection
740
724
  def element_class
741
- Details
725
+ Html
742
726
  end
743
727
  end
744
-
745
-
746
- class BaseFont < HTMLElement
747
- attributes(:string => ([:color, :face]), :int => ([:size]))
728
+ class Html < HTMLElement
729
+ attributes(:string => [:version])
748
730
  end
749
- class BaseFontCollection < ElementCollection
731
+ # do nothing
732
+ class Unknown < HTMLElement
733
+ # do nothing
734
+ end
735
+ class UnknownCollection < ElementCollection
750
736
  def element_class
751
- BaseFont
737
+ Unknown
752
738
  end
753
739
  end
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
754
  module Container
755
755
  #
756
756
  # @return [Anchor]
757
757
  #
758
-
758
+
759
759
  def a(*args)
760
760
  Anchor.new(self, extract_selector(args).merge(:tag_name => "a"))
761
761
  end
762
-
762
+
763
763
  #
764
764
  # @return [AnchorCollection]
765
765
  #
766
-
766
+
767
767
  def as(*args)
768
768
  AnchorCollection.new(self, extract_selector(args).merge(:tag_name => "a"))
769
769
  end
770
-
770
+
771
771
  Watir.tag_to_class[:a] = Anchor
772
772
  #
773
773
  # @return [HTMLElement]
774
774
  #
775
-
775
+
776
776
  def abbr(*args)
777
777
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "abbr"))
778
778
  end
779
-
779
+
780
780
  #
781
781
  # @return [HTMLElementCollection]
782
782
  #
783
-
783
+
784
784
  def abbrs(*args)
785
785
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "abbr"))
786
786
  end
787
-
787
+
788
788
  Watir.tag_to_class[:abbr] = HTMLElement
789
789
  #
790
790
  # @return [HTMLElement]
791
791
  #
792
-
792
+
793
793
  def address(*args)
794
794
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "address"))
795
795
  end
796
-
796
+
797
797
  #
798
798
  # @return [HTMLElementCollection]
799
799
  #
800
-
800
+
801
801
  def addresses(*args)
802
802
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "address"))
803
803
  end
804
-
804
+
805
805
  Watir.tag_to_class[:address] = HTMLElement
806
806
  #
807
807
  # @return [Area]
808
808
  #
809
-
809
+
810
810
  def area(*args)
811
811
  Area.new(self, extract_selector(args).merge(:tag_name => "area"))
812
812
  end
813
-
813
+
814
814
  #
815
815
  # @return [AreaCollection]
816
816
  #
817
-
817
+
818
818
  def areas(*args)
819
819
  AreaCollection.new(self, extract_selector(args).merge(:tag_name => "area"))
820
820
  end
821
-
821
+
822
822
  Watir.tag_to_class[:area] = Area
823
823
  #
824
824
  # @return [HTMLElement]
825
825
  #
826
-
826
+
827
827
  def article(*args)
828
828
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "article"))
829
829
  end
830
-
830
+
831
831
  #
832
832
  # @return [HTMLElementCollection]
833
833
  #
834
-
834
+
835
835
  def articles(*args)
836
836
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "article"))
837
837
  end
838
-
838
+
839
839
  Watir.tag_to_class[:article] = HTMLElement
840
840
  #
841
841
  # @return [HTMLElement]
842
842
  #
843
-
843
+
844
844
  def aside(*args)
845
845
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "aside"))
846
846
  end
847
-
847
+
848
848
  #
849
849
  # @return [HTMLElementCollection]
850
850
  #
851
-
851
+
852
852
  def asides(*args)
853
853
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "aside"))
854
854
  end
855
-
855
+
856
856
  Watir.tag_to_class[:aside] = HTMLElement
857
857
  #
858
858
  # @return [Audio]
859
859
  #
860
-
860
+
861
861
  def audio(*args)
862
862
  Audio.new(self, extract_selector(args).merge(:tag_name => "audio"))
863
863
  end
864
-
864
+
865
865
  #
866
866
  # @return [AudioCollection]
867
867
  #
868
-
868
+
869
869
  def audios(*args)
870
870
  AudioCollection.new(self, extract_selector(args).merge(:tag_name => "audio"))
871
871
  end
872
-
872
+
873
873
  Watir.tag_to_class[:audio] = Audio
874
874
  #
875
875
  # @return [HTMLElement]
876
876
  #
877
-
877
+
878
878
  def b(*args)
879
879
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "b"))
880
880
  end
881
-
881
+
882
882
  #
883
883
  # @return [HTMLElementCollection]
884
884
  #
885
-
885
+
886
886
  def bs(*args)
887
887
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "b"))
888
888
  end
889
-
889
+
890
890
  Watir.tag_to_class[:b] = HTMLElement
891
891
  #
892
892
  # @return [Base]
893
893
  #
894
-
894
+
895
895
  def base(*args)
896
896
  Base.new(self, extract_selector(args).merge(:tag_name => "base"))
897
897
  end
898
-
898
+
899
899
  #
900
900
  # @return [BaseCollection]
901
901
  #
902
-
902
+
903
903
  def bases(*args)
904
904
  BaseCollection.new(self, extract_selector(args).merge(:tag_name => "base"))
905
905
  end
906
-
906
+
907
907
  Watir.tag_to_class[:base] = Base
908
908
  #
909
909
  # @return [HTMLElement]
910
910
  #
911
-
911
+
912
912
  def bdo(*args)
913
913
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "bdo"))
914
914
  end
915
-
915
+
916
916
  #
917
917
  # @return [HTMLElementCollection]
918
918
  #
919
-
919
+
920
920
  def bdos(*args)
921
921
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "bdo"))
922
922
  end
923
-
923
+
924
924
  Watir.tag_to_class[:bdo] = HTMLElement
925
925
  #
926
926
  # @return [Quote]
927
927
  #
928
-
928
+
929
929
  def blockquote(*args)
930
930
  Quote.new(self, extract_selector(args).merge(:tag_name => "blockquote"))
931
931
  end
932
-
932
+
933
933
  #
934
934
  # @return [QuoteCollection]
935
935
  #
936
-
936
+
937
937
  def blockquotes(*args)
938
938
  QuoteCollection.new(self, extract_selector(args).merge(:tag_name => "blockquote"))
939
939
  end
940
-
940
+
941
941
  Watir.tag_to_class[:blockquote] = Quote
942
942
  #
943
943
  # @return [Body]
944
944
  #
945
-
945
+
946
946
  def body(*args)
947
947
  Body.new(self, extract_selector(args).merge(:tag_name => "body"))
948
948
  end
949
-
949
+
950
950
  #
951
951
  # @return [BodyCollection]
952
952
  #
953
-
953
+
954
954
  def bodys(*args)
955
955
  BodyCollection.new(self, extract_selector(args).merge(:tag_name => "body"))
956
956
  end
957
-
957
+
958
958
  Watir.tag_to_class[:body] = Body
959
959
  #
960
960
  # @return [BR]
961
961
  #
962
-
962
+
963
963
  def br(*args)
964
964
  BR.new(self, extract_selector(args).merge(:tag_name => "br"))
965
965
  end
966
-
966
+
967
967
  #
968
968
  # @return [BRCollection]
969
969
  #
970
-
970
+
971
971
  def brs(*args)
972
972
  BRCollection.new(self, extract_selector(args).merge(:tag_name => "br"))
973
973
  end
974
-
974
+
975
975
  Watir.tag_to_class[:br] = BR
976
976
  #
977
977
  # @return [Button]
978
978
  #
979
-
979
+
980
980
  def button(*args)
981
981
  Button.new(self, extract_selector(args).merge(:tag_name => "button"))
982
982
  end
983
-
983
+
984
984
  #
985
985
  # @return [ButtonCollection]
986
986
  #
987
-
987
+
988
988
  def buttons(*args)
989
989
  ButtonCollection.new(self, extract_selector(args).merge(:tag_name => "button"))
990
990
  end
991
-
991
+
992
992
  Watir.tag_to_class[:button] = Button
993
993
  #
994
994
  # @return [Canvas]
995
995
  #
996
-
996
+
997
997
  def canvas(*args)
998
998
  Canvas.new(self, extract_selector(args).merge(:tag_name => "canvas"))
999
999
  end
1000
-
1000
+
1001
1001
  #
1002
1002
  # @return [CanvasCollection]
1003
1003
  #
1004
-
1004
+
1005
1005
  def canvases(*args)
1006
1006
  CanvasCollection.new(self, extract_selector(args).merge(:tag_name => "canvas"))
1007
1007
  end
1008
-
1008
+
1009
1009
  Watir.tag_to_class[:canvas] = Canvas
1010
1010
  #
1011
1011
  # @return [TableCaption]
1012
1012
  #
1013
-
1013
+
1014
1014
  def caption(*args)
1015
1015
  TableCaption.new(self, extract_selector(args).merge(:tag_name => "caption"))
1016
1016
  end
1017
-
1017
+
1018
1018
  #
1019
1019
  # @return [TableCaptionCollection]
1020
1020
  #
1021
-
1021
+
1022
1022
  def captions(*args)
1023
1023
  TableCaptionCollection.new(self, extract_selector(args).merge(:tag_name => "caption"))
1024
1024
  end
1025
-
1025
+
1026
1026
  Watir.tag_to_class[:caption] = TableCaption
1027
1027
  #
1028
1028
  # @return [HTMLElement]
1029
1029
  #
1030
-
1030
+
1031
1031
  def cite(*args)
1032
1032
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "cite"))
1033
1033
  end
1034
-
1034
+
1035
1035
  #
1036
1036
  # @return [HTMLElementCollection]
1037
1037
  #
1038
-
1038
+
1039
1039
  def cites(*args)
1040
1040
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "cite"))
1041
1041
  end
1042
-
1042
+
1043
1043
  Watir.tag_to_class[:cite] = HTMLElement
1044
1044
  #
1045
1045
  # @return [HTMLElement]
1046
1046
  #
1047
-
1047
+
1048
1048
  def code(*args)
1049
1049
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "code"))
1050
1050
  end
1051
-
1051
+
1052
1052
  #
1053
1053
  # @return [HTMLElementCollection]
1054
1054
  #
1055
-
1055
+
1056
1056
  def codes(*args)
1057
1057
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "code"))
1058
1058
  end
1059
-
1059
+
1060
1060
  Watir.tag_to_class[:code] = HTMLElement
1061
1061
  #
1062
1062
  # @return [TableCol]
1063
1063
  #
1064
-
1064
+
1065
1065
  def col(*args)
1066
1066
  TableCol.new(self, extract_selector(args).merge(:tag_name => "col"))
1067
1067
  end
1068
-
1068
+
1069
1069
  #
1070
1070
  # @return [TableColCollection]
1071
1071
  #
1072
-
1072
+
1073
1073
  def cols(*args)
1074
1074
  TableColCollection.new(self, extract_selector(args).merge(:tag_name => "col"))
1075
1075
  end
1076
-
1076
+
1077
1077
  Watir.tag_to_class[:col] = TableCol
1078
1078
  #
1079
1079
  # @return [TableCol]
1080
1080
  #
1081
-
1081
+
1082
1082
  def colgroup(*args)
1083
1083
  TableCol.new(self, extract_selector(args).merge(:tag_name => "colgroup"))
1084
1084
  end
1085
-
1085
+
1086
1086
  #
1087
1087
  # @return [TableColCollection]
1088
1088
  #
1089
-
1089
+
1090
1090
  def colgroups(*args)
1091
1091
  TableColCollection.new(self, extract_selector(args).merge(:tag_name => "colgroup"))
1092
1092
  end
1093
-
1093
+
1094
1094
  Watir.tag_to_class[:colgroup] = TableCol
1095
1095
  #
1096
1096
  # @return [Command]
1097
1097
  #
1098
-
1098
+
1099
1099
  def command(*args)
1100
1100
  Command.new(self, extract_selector(args).merge(:tag_name => "command"))
1101
1101
  end
1102
-
1102
+
1103
1103
  #
1104
1104
  # @return [CommandCollection]
1105
1105
  #
1106
-
1106
+
1107
1107
  def commands(*args)
1108
1108
  CommandCollection.new(self, extract_selector(args).merge(:tag_name => "command"))
1109
1109
  end
1110
-
1110
+
1111
1111
  Watir.tag_to_class[:command] = Command
1112
1112
  #
1113
1113
  # @return [DataList]
1114
1114
  #
1115
-
1115
+
1116
1116
  def datalist(*args)
1117
1117
  DataList.new(self, extract_selector(args).merge(:tag_name => "datalist"))
1118
1118
  end
1119
-
1119
+
1120
1120
  #
1121
1121
  # @return [DataListCollection]
1122
1122
  #
1123
-
1123
+
1124
1124
  def datalists(*args)
1125
1125
  DataListCollection.new(self, extract_selector(args).merge(:tag_name => "datalist"))
1126
1126
  end
1127
-
1127
+
1128
1128
  Watir.tag_to_class[:datalist] = DataList
1129
1129
  #
1130
1130
  # @return [HTMLElement]
1131
1131
  #
1132
-
1132
+
1133
1133
  def dd(*args)
1134
1134
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "dd"))
1135
1135
  end
1136
-
1136
+
1137
1137
  #
1138
1138
  # @return [HTMLElementCollection]
1139
1139
  #
1140
-
1140
+
1141
1141
  def dds(*args)
1142
1142
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "dd"))
1143
1143
  end
1144
-
1144
+
1145
1145
  Watir.tag_to_class[:dd] = HTMLElement
1146
1146
  #
1147
1147
  # @return [Mod]
1148
1148
  #
1149
-
1149
+
1150
1150
  def del(*args)
1151
1151
  Mod.new(self, extract_selector(args).merge(:tag_name => "del"))
1152
1152
  end
1153
-
1153
+
1154
1154
  #
1155
1155
  # @return [ModCollection]
1156
1156
  #
1157
-
1157
+
1158
1158
  def dels(*args)
1159
1159
  ModCollection.new(self, extract_selector(args).merge(:tag_name => "del"))
1160
1160
  end
1161
-
1161
+
1162
1162
  Watir.tag_to_class[:del] = Mod
1163
1163
  #
1164
1164
  # @return [Details]
1165
1165
  #
1166
-
1166
+
1167
1167
  def details(*args)
1168
1168
  Details.new(self, extract_selector(args).merge(:tag_name => "details"))
1169
1169
  end
1170
-
1170
+
1171
1171
  #
1172
1172
  # @return [DetailsCollection]
1173
1173
  #
1174
-
1174
+
1175
1175
  def details(*args)
1176
1176
  DetailsCollection.new(self, extract_selector(args).merge(:tag_name => "details"))
1177
1177
  end
1178
-
1178
+
1179
1179
  Watir.tag_to_class[:details] = Details
1180
1180
  #
1181
1181
  # @return [HTMLElement]
1182
1182
  #
1183
-
1183
+
1184
1184
  def dfn(*args)
1185
1185
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "dfn"))
1186
1186
  end
1187
-
1187
+
1188
1188
  #
1189
1189
  # @return [HTMLElementCollection]
1190
1190
  #
1191
-
1191
+
1192
1192
  def dfns(*args)
1193
1193
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "dfn"))
1194
1194
  end
1195
-
1195
+
1196
1196
  Watir.tag_to_class[:dfn] = HTMLElement
1197
1197
  #
1198
1198
  # @return [Div]
1199
1199
  #
1200
-
1200
+
1201
1201
  def div(*args)
1202
1202
  Div.new(self, extract_selector(args).merge(:tag_name => "div"))
1203
1203
  end
1204
-
1204
+
1205
1205
  #
1206
1206
  # @return [DivCollection]
1207
1207
  #
1208
-
1208
+
1209
1209
  def divs(*args)
1210
1210
  DivCollection.new(self, extract_selector(args).merge(:tag_name => "div"))
1211
1211
  end
1212
-
1212
+
1213
1213
  Watir.tag_to_class[:div] = Div
1214
1214
  #
1215
1215
  # @return [DList]
1216
1216
  #
1217
-
1217
+
1218
1218
  def dl(*args)
1219
1219
  DList.new(self, extract_selector(args).merge(:tag_name => "dl"))
1220
1220
  end
1221
-
1221
+
1222
1222
  #
1223
1223
  # @return [DListCollection]
1224
1224
  #
1225
-
1225
+
1226
1226
  def dls(*args)
1227
1227
  DListCollection.new(self, extract_selector(args).merge(:tag_name => "dl"))
1228
1228
  end
1229
-
1229
+
1230
1230
  Watir.tag_to_class[:dl] = DList
1231
1231
  #
1232
1232
  # @return [HTMLElement]
1233
1233
  #
1234
-
1234
+
1235
1235
  def dt(*args)
1236
1236
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "dt"))
1237
1237
  end
1238
-
1238
+
1239
1239
  #
1240
1240
  # @return [HTMLElementCollection]
1241
1241
  #
1242
-
1242
+
1243
1243
  def dts(*args)
1244
1244
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "dt"))
1245
1245
  end
1246
-
1246
+
1247
1247
  Watir.tag_to_class[:dt] = HTMLElement
1248
1248
  #
1249
1249
  # @return [HTMLElement]
1250
1250
  #
1251
-
1251
+
1252
1252
  def em(*args)
1253
1253
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "em"))
1254
1254
  end
1255
-
1255
+
1256
1256
  #
1257
1257
  # @return [HTMLElementCollection]
1258
1258
  #
1259
-
1259
+
1260
1260
  def ems(*args)
1261
1261
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "em"))
1262
1262
  end
1263
-
1263
+
1264
1264
  Watir.tag_to_class[:em] = HTMLElement
1265
1265
  #
1266
1266
  # @return [Embed]
1267
1267
  #
1268
-
1268
+
1269
1269
  def embed(*args)
1270
1270
  Embed.new(self, extract_selector(args).merge(:tag_name => "embed"))
1271
1271
  end
1272
-
1272
+
1273
1273
  #
1274
1274
  # @return [EmbedCollection]
1275
1275
  #
1276
-
1276
+
1277
1277
  def embeds(*args)
1278
1278
  EmbedCollection.new(self, extract_selector(args).merge(:tag_name => "embed"))
1279
1279
  end
1280
-
1280
+
1281
1281
  Watir.tag_to_class[:embed] = Embed
1282
1282
  #
1283
1283
  # @return [FieldSet]
1284
1284
  #
1285
-
1285
+
1286
1286
  def fieldset(*args)
1287
1287
  FieldSet.new(self, extract_selector(args).merge(:tag_name => "fieldset"))
1288
1288
  end
1289
-
1289
+
1290
1290
  #
1291
1291
  # @return [FieldSetCollection]
1292
1292
  #
1293
-
1293
+
1294
1294
  def fieldsets(*args)
1295
1295
  FieldSetCollection.new(self, extract_selector(args).merge(:tag_name => "fieldset"))
1296
1296
  end
1297
-
1297
+
1298
1298
  Watir.tag_to_class[:fieldset] = FieldSet
1299
1299
  #
1300
1300
  # @return [HTMLElement]
1301
1301
  #
1302
-
1302
+
1303
1303
  def figcaption(*args)
1304
1304
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "figcaption"))
1305
1305
  end
1306
-
1306
+
1307
1307
  #
1308
1308
  # @return [HTMLElementCollection]
1309
1309
  #
1310
-
1310
+
1311
1311
  def figcaptions(*args)
1312
1312
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "figcaption"))
1313
1313
  end
1314
-
1314
+
1315
1315
  Watir.tag_to_class[:figcaption] = HTMLElement
1316
1316
  #
1317
1317
  # @return [HTMLElement]
1318
1318
  #
1319
-
1319
+
1320
1320
  def figure(*args)
1321
1321
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "figure"))
1322
1322
  end
1323
-
1323
+
1324
1324
  #
1325
1325
  # @return [HTMLElementCollection]
1326
1326
  #
1327
-
1327
+
1328
1328
  def figures(*args)
1329
1329
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "figure"))
1330
1330
  end
1331
-
1331
+
1332
1332
  Watir.tag_to_class[:figure] = HTMLElement
1333
1333
  #
1334
1334
  # @return [HTMLElement]
1335
1335
  #
1336
-
1336
+
1337
1337
  def footer(*args)
1338
1338
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "footer"))
1339
1339
  end
1340
-
1340
+
1341
1341
  #
1342
1342
  # @return [HTMLElementCollection]
1343
1343
  #
1344
-
1344
+
1345
1345
  def footers(*args)
1346
1346
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "footer"))
1347
1347
  end
1348
-
1348
+
1349
1349
  Watir.tag_to_class[:footer] = HTMLElement
1350
1350
  #
1351
1351
  # @return [Form]
1352
1352
  #
1353
-
1353
+
1354
1354
  def form(*args)
1355
1355
  Form.new(self, extract_selector(args).merge(:tag_name => "form"))
1356
1356
  end
1357
-
1357
+
1358
1358
  #
1359
1359
  # @return [FormCollection]
1360
1360
  #
1361
-
1361
+
1362
1362
  def forms(*args)
1363
1363
  FormCollection.new(self, extract_selector(args).merge(:tag_name => "form"))
1364
1364
  end
1365
-
1365
+
1366
1366
  Watir.tag_to_class[:form] = Form
1367
1367
  #
1368
1368
  # @return [Heading]
1369
1369
  #
1370
-
1370
+
1371
1371
  def h1(*args)
1372
1372
  Heading.new(self, extract_selector(args).merge(:tag_name => "h1"))
1373
1373
  end
1374
-
1374
+
1375
1375
  #
1376
1376
  # @return [HeadingCollection]
1377
1377
  #
1378
-
1378
+
1379
1379
  def h1s(*args)
1380
1380
  HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h1"))
1381
1381
  end
1382
-
1382
+
1383
1383
  Watir.tag_to_class[:h1] = Heading
1384
1384
  #
1385
1385
  # @return [Heading]
1386
1386
  #
1387
-
1387
+
1388
1388
  def h2(*args)
1389
1389
  Heading.new(self, extract_selector(args).merge(:tag_name => "h2"))
1390
1390
  end
1391
-
1391
+
1392
1392
  #
1393
1393
  # @return [HeadingCollection]
1394
1394
  #
1395
-
1395
+
1396
1396
  def h2s(*args)
1397
1397
  HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h2"))
1398
1398
  end
1399
-
1399
+
1400
1400
  Watir.tag_to_class[:h2] = Heading
1401
1401
  #
1402
1402
  # @return [Heading]
1403
1403
  #
1404
-
1404
+
1405
1405
  def h3(*args)
1406
1406
  Heading.new(self, extract_selector(args).merge(:tag_name => "h3"))
1407
1407
  end
1408
-
1408
+
1409
1409
  #
1410
1410
  # @return [HeadingCollection]
1411
1411
  #
1412
-
1412
+
1413
1413
  def h3s(*args)
1414
1414
  HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h3"))
1415
1415
  end
1416
-
1416
+
1417
1417
  Watir.tag_to_class[:h3] = Heading
1418
1418
  #
1419
1419
  # @return [Heading]
1420
1420
  #
1421
-
1421
+
1422
1422
  def h4(*args)
1423
1423
  Heading.new(self, extract_selector(args).merge(:tag_name => "h4"))
1424
1424
  end
1425
-
1425
+
1426
1426
  #
1427
1427
  # @return [HeadingCollection]
1428
1428
  #
1429
-
1429
+
1430
1430
  def h4s(*args)
1431
1431
  HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h4"))
1432
1432
  end
1433
-
1433
+
1434
1434
  Watir.tag_to_class[:h4] = Heading
1435
1435
  #
1436
1436
  # @return [Heading]
1437
1437
  #
1438
-
1438
+
1439
1439
  def h5(*args)
1440
1440
  Heading.new(self, extract_selector(args).merge(:tag_name => "h5"))
1441
1441
  end
1442
-
1442
+
1443
1443
  #
1444
1444
  # @return [HeadingCollection]
1445
1445
  #
1446
-
1446
+
1447
1447
  def h5s(*args)
1448
1448
  HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h5"))
1449
1449
  end
1450
-
1450
+
1451
1451
  Watir.tag_to_class[:h5] = Heading
1452
1452
  #
1453
1453
  # @return [Heading]
1454
1454
  #
1455
-
1455
+
1456
1456
  def h6(*args)
1457
1457
  Heading.new(self, extract_selector(args).merge(:tag_name => "h6"))
1458
1458
  end
1459
-
1459
+
1460
1460
  #
1461
1461
  # @return [HeadingCollection]
1462
1462
  #
1463
-
1463
+
1464
1464
  def h6s(*args)
1465
1465
  HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h6"))
1466
1466
  end
1467
-
1467
+
1468
1468
  Watir.tag_to_class[:h6] = Heading
1469
1469
  #
1470
1470
  # @return [Head]
1471
1471
  #
1472
-
1472
+
1473
1473
  def head(*args)
1474
1474
  Head.new(self, extract_selector(args).merge(:tag_name => "head"))
1475
1475
  end
1476
-
1476
+
1477
1477
  #
1478
1478
  # @return [HeadCollection]
1479
1479
  #
1480
-
1480
+
1481
1481
  def heads(*args)
1482
1482
  HeadCollection.new(self, extract_selector(args).merge(:tag_name => "head"))
1483
1483
  end
1484
-
1484
+
1485
1485
  Watir.tag_to_class[:head] = Head
1486
1486
  #
1487
1487
  # @return [HTMLElement]
1488
1488
  #
1489
-
1489
+
1490
1490
  def header(*args)
1491
1491
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "header"))
1492
1492
  end
1493
-
1493
+
1494
1494
  #
1495
1495
  # @return [HTMLElementCollection]
1496
1496
  #
1497
-
1497
+
1498
1498
  def headers(*args)
1499
1499
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "header"))
1500
1500
  end
1501
-
1501
+
1502
1502
  Watir.tag_to_class[:header] = HTMLElement
1503
1503
  #
1504
1504
  # @return [HTMLElement]
1505
1505
  #
1506
-
1506
+
1507
1507
  def hgroup(*args)
1508
1508
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "hgroup"))
1509
1509
  end
1510
-
1510
+
1511
1511
  #
1512
1512
  # @return [HTMLElementCollection]
1513
1513
  #
1514
-
1514
+
1515
1515
  def hgroups(*args)
1516
1516
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "hgroup"))
1517
1517
  end
1518
-
1518
+
1519
1519
  Watir.tag_to_class[:hgroup] = HTMLElement
1520
1520
  #
1521
1521
  # @return [HR]
1522
1522
  #
1523
-
1523
+
1524
1524
  def hr(*args)
1525
1525
  HR.new(self, extract_selector(args).merge(:tag_name => "hr"))
1526
1526
  end
1527
-
1527
+
1528
1528
  #
1529
1529
  # @return [HRCollection]
1530
1530
  #
1531
-
1531
+
1532
1532
  def hrs(*args)
1533
1533
  HRCollection.new(self, extract_selector(args).merge(:tag_name => "hr"))
1534
1534
  end
1535
-
1535
+
1536
1536
  Watir.tag_to_class[:hr] = HR
1537
1537
  #
1538
1538
  # @return [Html]
1539
1539
  #
1540
-
1540
+
1541
1541
  def html(*args)
1542
1542
  Html.new(self, extract_selector(args).merge(:tag_name => "html"))
1543
1543
  end
1544
-
1544
+
1545
1545
  #
1546
1546
  # @return [HtmlCollection]
1547
1547
  #
1548
-
1548
+
1549
1549
  def htmls(*args)
1550
1550
  HtmlCollection.new(self, extract_selector(args).merge(:tag_name => "html"))
1551
1551
  end
1552
-
1552
+
1553
1553
  Watir.tag_to_class[:html] = Html
1554
1554
  #
1555
1555
  # @return [HTMLElement]
1556
1556
  #
1557
-
1557
+
1558
1558
  def i(*args)
1559
1559
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "i"))
1560
1560
  end
1561
-
1561
+
1562
1562
  #
1563
1563
  # @return [HTMLElementCollection]
1564
1564
  #
1565
-
1565
+
1566
1566
  def is(*args)
1567
1567
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "i"))
1568
1568
  end
1569
-
1569
+
1570
1570
  Watir.tag_to_class[:i] = HTMLElement
1571
1571
  #
1572
1572
  # @return [IFrame]
1573
1573
  #
1574
-
1574
+
1575
1575
  def iframe(*args)
1576
1576
  IFrame.new(self, extract_selector(args).merge(:tag_name => "iframe"))
1577
1577
  end
1578
-
1578
+
1579
1579
  #
1580
1580
  # @return [IFrameCollection]
1581
1581
  #
1582
-
1582
+
1583
1583
  def iframes(*args)
1584
1584
  IFrameCollection.new(self, extract_selector(args).merge(:tag_name => "iframe"))
1585
1585
  end
1586
-
1586
+
1587
1587
  Watir.tag_to_class[:iframe] = IFrame
1588
1588
  #
1589
1589
  # @return [Image]
1590
1590
  #
1591
-
1592
- def image(*args)
1591
+
1592
+ def img(*args)
1593
1593
  Image.new(self, extract_selector(args).merge(:tag_name => "img"))
1594
1594
  end
1595
-
1595
+
1596
1596
  #
1597
1597
  # @return [ImageCollection]
1598
1598
  #
1599
-
1600
- def images(*args)
1599
+
1600
+ def imgs(*args)
1601
1601
  ImageCollection.new(self, extract_selector(args).merge(:tag_name => "img"))
1602
1602
  end
1603
-
1603
+
1604
1604
  Watir.tag_to_class[:img] = Image
1605
1605
  #
1606
1606
  # @return [Input]
1607
1607
  #
1608
-
1608
+
1609
1609
  def input(*args)
1610
1610
  Input.new(self, extract_selector(args).merge(:tag_name => "input"))
1611
1611
  end
1612
-
1612
+
1613
1613
  #
1614
1614
  # @return [InputCollection]
1615
1615
  #
1616
-
1616
+
1617
1617
  def inputs(*args)
1618
1618
  InputCollection.new(self, extract_selector(args).merge(:tag_name => "input"))
1619
1619
  end
1620
-
1620
+
1621
1621
  Watir.tag_to_class[:input] = Input
1622
1622
  #
1623
1623
  # @return [Mod]
1624
1624
  #
1625
-
1625
+
1626
1626
  def ins(*args)
1627
1627
  Mod.new(self, extract_selector(args).merge(:tag_name => "ins"))
1628
1628
  end
1629
-
1629
+
1630
1630
  #
1631
1631
  # @return [ModCollection]
1632
1632
  #
1633
-
1633
+
1634
1634
  def inses(*args)
1635
1635
  ModCollection.new(self, extract_selector(args).merge(:tag_name => "ins"))
1636
1636
  end
1637
-
1637
+
1638
1638
  Watir.tag_to_class[:ins] = Mod
1639
1639
  #
1640
1640
  # @return [HTMLElement]
1641
1641
  #
1642
-
1642
+
1643
1643
  def kbd(*args)
1644
1644
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "kbd"))
1645
1645
  end
1646
-
1646
+
1647
1647
  #
1648
1648
  # @return [HTMLElementCollection]
1649
1649
  #
1650
-
1650
+
1651
1651
  def kbds(*args)
1652
1652
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "kbd"))
1653
1653
  end
1654
-
1654
+
1655
1655
  Watir.tag_to_class[:kbd] = HTMLElement
1656
1656
  #
1657
1657
  # @return [Keygen]
1658
1658
  #
1659
-
1659
+
1660
1660
  def keygen(*args)
1661
1661
  Keygen.new(self, extract_selector(args).merge(:tag_name => "keygen"))
1662
1662
  end
1663
-
1663
+
1664
1664
  #
1665
1665
  # @return [KeygenCollection]
1666
1666
  #
1667
-
1667
+
1668
1668
  def keygens(*args)
1669
1669
  KeygenCollection.new(self, extract_selector(args).merge(:tag_name => "keygen"))
1670
1670
  end
1671
-
1671
+
1672
1672
  Watir.tag_to_class[:keygen] = Keygen
1673
1673
  #
1674
1674
  # @return [Label]
1675
1675
  #
1676
-
1676
+
1677
1677
  def label(*args)
1678
1678
  Label.new(self, extract_selector(args).merge(:tag_name => "label"))
1679
1679
  end
1680
-
1680
+
1681
1681
  #
1682
1682
  # @return [LabelCollection]
1683
1683
  #
1684
-
1684
+
1685
1685
  def labels(*args)
1686
1686
  LabelCollection.new(self, extract_selector(args).merge(:tag_name => "label"))
1687
1687
  end
1688
-
1688
+
1689
1689
  Watir.tag_to_class[:label] = Label
1690
1690
  #
1691
1691
  # @return [Legend]
1692
1692
  #
1693
-
1693
+
1694
1694
  def legend(*args)
1695
1695
  Legend.new(self, extract_selector(args).merge(:tag_name => "legend"))
1696
1696
  end
1697
-
1697
+
1698
1698
  #
1699
1699
  # @return [LegendCollection]
1700
1700
  #
1701
-
1701
+
1702
1702
  def legends(*args)
1703
1703
  LegendCollection.new(self, extract_selector(args).merge(:tag_name => "legend"))
1704
1704
  end
1705
-
1705
+
1706
1706
  Watir.tag_to_class[:legend] = Legend
1707
1707
  #
1708
1708
  # @return [LI]
1709
1709
  #
1710
-
1710
+
1711
1711
  def li(*args)
1712
1712
  LI.new(self, extract_selector(args).merge(:tag_name => "li"))
1713
1713
  end
1714
-
1714
+
1715
1715
  #
1716
1716
  # @return [LICollection]
1717
1717
  #
1718
-
1718
+
1719
1719
  def lis(*args)
1720
1720
  LICollection.new(self, extract_selector(args).merge(:tag_name => "li"))
1721
1721
  end
1722
-
1722
+
1723
1723
  Watir.tag_to_class[:li] = LI
1724
1724
  #
1725
1725
  # @return [Map]
1726
1726
  #
1727
-
1727
+
1728
1728
  def map(*args)
1729
1729
  Map.new(self, extract_selector(args).merge(:tag_name => "map"))
1730
1730
  end
1731
-
1731
+
1732
1732
  #
1733
1733
  # @return [MapCollection]
1734
1734
  #
1735
-
1735
+
1736
1736
  def maps(*args)
1737
1737
  MapCollection.new(self, extract_selector(args).merge(:tag_name => "map"))
1738
1738
  end
1739
-
1739
+
1740
1740
  Watir.tag_to_class[:map] = Map
1741
1741
  #
1742
1742
  # @return [HTMLElement]
1743
1743
  #
1744
-
1744
+
1745
1745
  def mark(*args)
1746
1746
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "mark"))
1747
1747
  end
1748
-
1748
+
1749
1749
  #
1750
1750
  # @return [HTMLElementCollection]
1751
1751
  #
1752
-
1752
+
1753
1753
  def marks(*args)
1754
1754
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "mark"))
1755
1755
  end
1756
-
1756
+
1757
1757
  Watir.tag_to_class[:mark] = HTMLElement
1758
1758
  #
1759
1759
  # @return [Menu]
1760
1760
  #
1761
-
1761
+
1762
1762
  def menu(*args)
1763
1763
  Menu.new(self, extract_selector(args).merge(:tag_name => "menu"))
1764
1764
  end
1765
-
1765
+
1766
1766
  #
1767
1767
  # @return [MenuCollection]
1768
1768
  #
1769
-
1769
+
1770
1770
  def menus(*args)
1771
1771
  MenuCollection.new(self, extract_selector(args).merge(:tag_name => "menu"))
1772
1772
  end
1773
-
1773
+
1774
1774
  Watir.tag_to_class[:menu] = Menu
1775
1775
  #
1776
1776
  # @return [Meta]
1777
1777
  #
1778
-
1778
+
1779
1779
  def meta(*args)
1780
1780
  Meta.new(self, extract_selector(args).merge(:tag_name => "meta"))
1781
1781
  end
1782
-
1782
+
1783
1783
  #
1784
1784
  # @return [MetaCollection]
1785
1785
  #
1786
-
1786
+
1787
1787
  def metas(*args)
1788
1788
  MetaCollection.new(self, extract_selector(args).merge(:tag_name => "meta"))
1789
1789
  end
1790
-
1790
+
1791
1791
  Watir.tag_to_class[:meta] = Meta
1792
1792
  #
1793
1793
  # @return [Meter]
1794
1794
  #
1795
-
1795
+
1796
1796
  def meter(*args)
1797
1797
  Meter.new(self, extract_selector(args).merge(:tag_name => "meter"))
1798
1798
  end
1799
-
1799
+
1800
1800
  #
1801
1801
  # @return [MeterCollection]
1802
1802
  #
1803
-
1803
+
1804
1804
  def meters(*args)
1805
1805
  MeterCollection.new(self, extract_selector(args).merge(:tag_name => "meter"))
1806
1806
  end
1807
-
1807
+
1808
1808
  Watir.tag_to_class[:meter] = Meter
1809
1809
  #
1810
1810
  # @return [HTMLElement]
1811
1811
  #
1812
-
1812
+
1813
1813
  def nav(*args)
1814
1814
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "nav"))
1815
1815
  end
1816
-
1816
+
1817
1817
  #
1818
1818
  # @return [HTMLElementCollection]
1819
1819
  #
1820
-
1820
+
1821
1821
  def navs(*args)
1822
1822
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "nav"))
1823
1823
  end
1824
-
1824
+
1825
1825
  Watir.tag_to_class[:nav] = HTMLElement
1826
1826
  #
1827
1827
  # @return [HTMLElement]
1828
1828
  #
1829
-
1829
+
1830
1830
  def noscript(*args)
1831
1831
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "noscript"))
1832
1832
  end
1833
-
1833
+
1834
1834
  #
1835
1835
  # @return [HTMLElementCollection]
1836
1836
  #
1837
-
1837
+
1838
1838
  def noscripts(*args)
1839
1839
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "noscript"))
1840
1840
  end
1841
-
1841
+
1842
1842
  Watir.tag_to_class[:noscript] = HTMLElement
1843
1843
  #
1844
1844
  # @return [Object]
1845
1845
  #
1846
-
1846
+
1847
1847
  def object(*args)
1848
1848
  Object.new(self, extract_selector(args).merge(:tag_name => "object"))
1849
1849
  end
1850
-
1850
+
1851
1851
  #
1852
1852
  # @return [ObjectCollection]
1853
1853
  #
1854
-
1854
+
1855
1855
  def objects(*args)
1856
1856
  ObjectCollection.new(self, extract_selector(args).merge(:tag_name => "object"))
1857
1857
  end
1858
-
1858
+
1859
1859
  Watir.tag_to_class[:object] = Object
1860
1860
  #
1861
1861
  # @return [OList]
1862
1862
  #
1863
-
1863
+
1864
1864
  def ol(*args)
1865
1865
  OList.new(self, extract_selector(args).merge(:tag_name => "ol"))
1866
1866
  end
1867
-
1867
+
1868
1868
  #
1869
1869
  # @return [OListCollection]
1870
1870
  #
1871
-
1871
+
1872
1872
  def ols(*args)
1873
1873
  OListCollection.new(self, extract_selector(args).merge(:tag_name => "ol"))
1874
1874
  end
1875
-
1875
+
1876
1876
  Watir.tag_to_class[:ol] = OList
1877
1877
  #
1878
1878
  # @return [OptGroup]
1879
1879
  #
1880
-
1880
+
1881
1881
  def optgroup(*args)
1882
1882
  OptGroup.new(self, extract_selector(args).merge(:tag_name => "optgroup"))
1883
1883
  end
1884
-
1884
+
1885
1885
  #
1886
1886
  # @return [OptGroupCollection]
1887
1887
  #
1888
-
1888
+
1889
1889
  def optgroups(*args)
1890
1890
  OptGroupCollection.new(self, extract_selector(args).merge(:tag_name => "optgroup"))
1891
1891
  end
1892
-
1892
+
1893
1893
  Watir.tag_to_class[:optgroup] = OptGroup
1894
1894
  #
1895
1895
  # @return [Option]
1896
1896
  #
1897
-
1897
+
1898
1898
  def option(*args)
1899
1899
  Option.new(self, extract_selector(args).merge(:tag_name => "option"))
1900
1900
  end
1901
-
1901
+
1902
1902
  #
1903
1903
  # @return [OptionCollection]
1904
1904
  #
1905
-
1905
+
1906
1906
  def options(*args)
1907
1907
  OptionCollection.new(self, extract_selector(args).merge(:tag_name => "option"))
1908
1908
  end
1909
-
1909
+
1910
1910
  Watir.tag_to_class[:option] = Option
1911
1911
  #
1912
1912
  # @return [Output]
1913
1913
  #
1914
-
1914
+
1915
1915
  def output(*args)
1916
1916
  Output.new(self, extract_selector(args).merge(:tag_name => "output"))
1917
1917
  end
1918
-
1918
+
1919
1919
  #
1920
1920
  # @return [OutputCollection]
1921
1921
  #
1922
-
1922
+
1923
1923
  def outputs(*args)
1924
1924
  OutputCollection.new(self, extract_selector(args).merge(:tag_name => "output"))
1925
1925
  end
1926
-
1926
+
1927
1927
  Watir.tag_to_class[:output] = Output
1928
1928
  #
1929
1929
  # @return [Paragraph]
1930
1930
  #
1931
-
1931
+
1932
1932
  def p(*args)
1933
1933
  Paragraph.new(self, extract_selector(args).merge(:tag_name => "p"))
1934
1934
  end
1935
-
1935
+
1936
1936
  #
1937
1937
  # @return [ParagraphCollection]
1938
1938
  #
1939
-
1939
+
1940
1940
  def ps(*args)
1941
1941
  ParagraphCollection.new(self, extract_selector(args).merge(:tag_name => "p"))
1942
1942
  end
1943
-
1943
+
1944
1944
  Watir.tag_to_class[:p] = Paragraph
1945
1945
  #
1946
1946
  # @return [Param]
1947
1947
  #
1948
-
1948
+
1949
1949
  def param(*args)
1950
1950
  Param.new(self, extract_selector(args).merge(:tag_name => "param"))
1951
1951
  end
1952
-
1952
+
1953
1953
  #
1954
1954
  # @return [ParamCollection]
1955
1955
  #
1956
-
1956
+
1957
1957
  def params(*args)
1958
1958
  ParamCollection.new(self, extract_selector(args).merge(:tag_name => "param"))
1959
1959
  end
1960
-
1960
+
1961
1961
  Watir.tag_to_class[:param] = Param
1962
1962
  #
1963
1963
  # @return [Pre]
1964
1964
  #
1965
-
1965
+
1966
1966
  def pre(*args)
1967
1967
  Pre.new(self, extract_selector(args).merge(:tag_name => "pre"))
1968
1968
  end
1969
-
1969
+
1970
1970
  #
1971
1971
  # @return [PreCollection]
1972
1972
  #
1973
-
1973
+
1974
1974
  def pres(*args)
1975
1975
  PreCollection.new(self, extract_selector(args).merge(:tag_name => "pre"))
1976
1976
  end
1977
-
1977
+
1978
1978
  Watir.tag_to_class[:pre] = Pre
1979
1979
  #
1980
1980
  # @return [Progress]
1981
1981
  #
1982
-
1982
+
1983
1983
  def progress(*args)
1984
1984
  Progress.new(self, extract_selector(args).merge(:tag_name => "progress"))
1985
1985
  end
1986
-
1986
+
1987
1987
  #
1988
1988
  # @return [ProgressCollection]
1989
1989
  #
1990
-
1990
+
1991
1991
  def progresses(*args)
1992
1992
  ProgressCollection.new(self, extract_selector(args).merge(:tag_name => "progress"))
1993
1993
  end
1994
-
1994
+
1995
1995
  Watir.tag_to_class[:progress] = Progress
1996
1996
  #
1997
1997
  # @return [Quote]
1998
1998
  #
1999
-
1999
+
2000
2000
  def q(*args)
2001
2001
  Quote.new(self, extract_selector(args).merge(:tag_name => "q"))
2002
2002
  end
2003
-
2003
+
2004
2004
  #
2005
2005
  # @return [QuoteCollection]
2006
2006
  #
2007
-
2007
+
2008
2008
  def qs(*args)
2009
2009
  QuoteCollection.new(self, extract_selector(args).merge(:tag_name => "q"))
2010
2010
  end
2011
-
2011
+
2012
2012
  Watir.tag_to_class[:q] = Quote
2013
2013
  #
2014
2014
  # @return [HTMLElement]
2015
2015
  #
2016
-
2016
+
2017
2017
  def rp(*args)
2018
2018
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "rp"))
2019
2019
  end
2020
-
2020
+
2021
2021
  #
2022
2022
  # @return [HTMLElementCollection]
2023
2023
  #
2024
-
2024
+
2025
2025
  def rps(*args)
2026
2026
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "rp"))
2027
2027
  end
2028
-
2028
+
2029
2029
  Watir.tag_to_class[:rp] = HTMLElement
2030
2030
  #
2031
2031
  # @return [HTMLElement]
2032
2032
  #
2033
-
2033
+
2034
2034
  def rt(*args)
2035
2035
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "rt"))
2036
2036
  end
2037
-
2037
+
2038
2038
  #
2039
2039
  # @return [HTMLElementCollection]
2040
2040
  #
2041
-
2041
+
2042
2042
  def rts(*args)
2043
2043
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "rt"))
2044
2044
  end
2045
-
2045
+
2046
2046
  Watir.tag_to_class[:rt] = HTMLElement
2047
2047
  #
2048
2048
  # @return [HTMLElement]
2049
2049
  #
2050
-
2050
+
2051
2051
  def ruby(*args)
2052
2052
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "ruby"))
2053
2053
  end
2054
-
2054
+
2055
2055
  #
2056
2056
  # @return [HTMLElementCollection]
2057
2057
  #
2058
-
2058
+
2059
2059
  def rubies(*args)
2060
2060
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "ruby"))
2061
2061
  end
2062
-
2062
+
2063
2063
  Watir.tag_to_class[:ruby] = HTMLElement
2064
2064
  #
2065
2065
  # @return [HTMLElement]
2066
2066
  #
2067
-
2067
+
2068
2068
  def samp(*args)
2069
2069
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "samp"))
2070
2070
  end
2071
-
2071
+
2072
2072
  #
2073
2073
  # @return [HTMLElementCollection]
2074
2074
  #
2075
-
2075
+
2076
2076
  def samps(*args)
2077
2077
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "samp"))
2078
2078
  end
2079
-
2079
+
2080
2080
  Watir.tag_to_class[:samp] = HTMLElement
2081
2081
  #
2082
2082
  # @return [Script]
2083
2083
  #
2084
-
2084
+
2085
2085
  def script(*args)
2086
2086
  Script.new(self, extract_selector(args).merge(:tag_name => "script"))
2087
2087
  end
2088
-
2088
+
2089
2089
  #
2090
2090
  # @return [ScriptCollection]
2091
2091
  #
2092
-
2092
+
2093
2093
  def scripts(*args)
2094
2094
  ScriptCollection.new(self, extract_selector(args).merge(:tag_name => "script"))
2095
2095
  end
2096
-
2096
+
2097
2097
  Watir.tag_to_class[:script] = Script
2098
2098
  #
2099
2099
  # @return [HTMLElement]
2100
2100
  #
2101
-
2101
+
2102
2102
  def section(*args)
2103
2103
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "section"))
2104
2104
  end
2105
-
2105
+
2106
2106
  #
2107
2107
  # @return [HTMLElementCollection]
2108
2108
  #
2109
-
2109
+
2110
2110
  def sections(*args)
2111
2111
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "section"))
2112
2112
  end
2113
-
2113
+
2114
2114
  Watir.tag_to_class[:section] = HTMLElement
2115
2115
  #
2116
2116
  # @return [Select]
2117
2117
  #
2118
-
2118
+
2119
2119
  def select(*args)
2120
2120
  Select.new(self, extract_selector(args).merge(:tag_name => "select"))
2121
2121
  end
2122
-
2122
+
2123
2123
  #
2124
2124
  # @return [SelectCollection]
2125
2125
  #
2126
-
2126
+
2127
2127
  def selects(*args)
2128
2128
  SelectCollection.new(self, extract_selector(args).merge(:tag_name => "select"))
2129
2129
  end
2130
-
2130
+
2131
2131
  Watir.tag_to_class[:select] = Select
2132
2132
  #
2133
2133
  # @return [HTMLElement]
2134
2134
  #
2135
-
2135
+
2136
2136
  def small(*args)
2137
2137
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "small"))
2138
2138
  end
2139
-
2139
+
2140
2140
  #
2141
2141
  # @return [HTMLElementCollection]
2142
2142
  #
2143
-
2143
+
2144
2144
  def smalls(*args)
2145
2145
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "small"))
2146
2146
  end
2147
-
2147
+
2148
2148
  Watir.tag_to_class[:small] = HTMLElement
2149
2149
  #
2150
2150
  # @return [Source]
2151
2151
  #
2152
-
2152
+
2153
2153
  def source(*args)
2154
2154
  Source.new(self, extract_selector(args).merge(:tag_name => "source"))
2155
2155
  end
2156
-
2156
+
2157
2157
  #
2158
2158
  # @return [SourceCollection]
2159
2159
  #
2160
-
2160
+
2161
2161
  def sources(*args)
2162
2162
  SourceCollection.new(self, extract_selector(args).merge(:tag_name => "source"))
2163
2163
  end
2164
-
2164
+
2165
2165
  Watir.tag_to_class[:source] = Source
2166
2166
  #
2167
2167
  # @return [Span]
2168
2168
  #
2169
-
2169
+
2170
2170
  def span(*args)
2171
2171
  Span.new(self, extract_selector(args).merge(:tag_name => "span"))
2172
2172
  end
2173
-
2173
+
2174
2174
  #
2175
2175
  # @return [SpanCollection]
2176
2176
  #
2177
-
2177
+
2178
2178
  def spans(*args)
2179
2179
  SpanCollection.new(self, extract_selector(args).merge(:tag_name => "span"))
2180
2180
  end
2181
-
2181
+
2182
2182
  Watir.tag_to_class[:span] = Span
2183
2183
  #
2184
2184
  # @return [HTMLElement]
2185
2185
  #
2186
-
2186
+
2187
2187
  def strong(*args)
2188
2188
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "strong"))
2189
2189
  end
2190
-
2190
+
2191
2191
  #
2192
2192
  # @return [HTMLElementCollection]
2193
2193
  #
2194
-
2194
+
2195
2195
  def strongs(*args)
2196
2196
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "strong"))
2197
2197
  end
2198
-
2198
+
2199
2199
  Watir.tag_to_class[:strong] = HTMLElement
2200
2200
  #
2201
2201
  # @return [Style]
2202
2202
  #
2203
-
2203
+
2204
2204
  def style(*args)
2205
2205
  Style.new(self, extract_selector(args).merge(:tag_name => "style"))
2206
2206
  end
2207
-
2207
+
2208
2208
  #
2209
2209
  # @return [StyleCollection]
2210
2210
  #
2211
-
2211
+
2212
2212
  def styles(*args)
2213
2213
  StyleCollection.new(self, extract_selector(args).merge(:tag_name => "style"))
2214
2214
  end
2215
-
2215
+
2216
2216
  Watir.tag_to_class[:style] = Style
2217
2217
  #
2218
2218
  # @return [HTMLElement]
2219
2219
  #
2220
-
2220
+
2221
2221
  def sub(*args)
2222
2222
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "sub"))
2223
2223
  end
2224
-
2224
+
2225
2225
  #
2226
2226
  # @return [HTMLElementCollection]
2227
2227
  #
2228
-
2228
+
2229
2229
  def subs(*args)
2230
2230
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "sub"))
2231
2231
  end
2232
-
2232
+
2233
2233
  Watir.tag_to_class[:sub] = HTMLElement
2234
2234
  #
2235
2235
  # @return [HTMLElement]
2236
2236
  #
2237
-
2237
+
2238
2238
  def summary(*args)
2239
2239
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "summary"))
2240
2240
  end
2241
-
2241
+
2242
2242
  #
2243
2243
  # @return [HTMLElementCollection]
2244
2244
  #
2245
-
2245
+
2246
2246
  def summaries(*args)
2247
2247
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "summary"))
2248
2248
  end
2249
-
2249
+
2250
2250
  Watir.tag_to_class[:summary] = HTMLElement
2251
2251
  #
2252
2252
  # @return [HTMLElement]
2253
2253
  #
2254
-
2254
+
2255
2255
  def sup(*args)
2256
2256
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "sup"))
2257
2257
  end
2258
-
2258
+
2259
2259
  #
2260
2260
  # @return [HTMLElementCollection]
2261
2261
  #
2262
-
2262
+
2263
2263
  def sups(*args)
2264
2264
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "sup"))
2265
2265
  end
2266
-
2266
+
2267
2267
  Watir.tag_to_class[:sup] = HTMLElement
2268
2268
  #
2269
2269
  # @return [Table]
2270
2270
  #
2271
-
2271
+
2272
2272
  def table(*args)
2273
2273
  Table.new(self, extract_selector(args).merge(:tag_name => "table"))
2274
2274
  end
2275
-
2275
+
2276
2276
  #
2277
2277
  # @return [TableCollection]
2278
2278
  #
2279
-
2279
+
2280
2280
  def tables(*args)
2281
2281
  TableCollection.new(self, extract_selector(args).merge(:tag_name => "table"))
2282
2282
  end
2283
-
2283
+
2284
2284
  Watir.tag_to_class[:table] = Table
2285
2285
  #
2286
2286
  # @return [TableSection]
2287
2287
  #
2288
-
2288
+
2289
2289
  def tbody(*args)
2290
2290
  TableSection.new(self, extract_selector(args).merge(:tag_name => "tbody"))
2291
2291
  end
2292
-
2292
+
2293
2293
  #
2294
2294
  # @return [TableSectionCollection]
2295
2295
  #
2296
-
2296
+
2297
2297
  def tbodys(*args)
2298
2298
  TableSectionCollection.new(self, extract_selector(args).merge(:tag_name => "tbody"))
2299
2299
  end
2300
-
2300
+
2301
2301
  Watir.tag_to_class[:tbody] = TableSection
2302
2302
  #
2303
2303
  # @return [TableDataCell]
2304
2304
  #
2305
-
2305
+
2306
2306
  def td(*args)
2307
2307
  TableDataCell.new(self, extract_selector(args).merge(:tag_name => "td"))
2308
2308
  end
2309
-
2309
+
2310
2310
  #
2311
2311
  # @return [TableDataCellCollection]
2312
2312
  #
2313
-
2313
+
2314
2314
  def tds(*args)
2315
2315
  TableDataCellCollection.new(self, extract_selector(args).merge(:tag_name => "td"))
2316
2316
  end
2317
-
2317
+
2318
2318
  Watir.tag_to_class[:td] = TableDataCell
2319
2319
  #
2320
2320
  # @return [TextArea]
2321
2321
  #
2322
-
2322
+
2323
2323
  def textarea(*args)
2324
2324
  TextArea.new(self, extract_selector(args).merge(:tag_name => "textarea"))
2325
2325
  end
2326
-
2326
+
2327
2327
  #
2328
2328
  # @return [TextAreaCollection]
2329
2329
  #
2330
-
2330
+
2331
2331
  def textareas(*args)
2332
2332
  TextAreaCollection.new(self, extract_selector(args).merge(:tag_name => "textarea"))
2333
2333
  end
2334
-
2334
+
2335
2335
  Watir.tag_to_class[:textarea] = TextArea
2336
2336
  #
2337
2337
  # @return [TableSection]
2338
2338
  #
2339
-
2339
+
2340
2340
  def tfoot(*args)
2341
2341
  TableSection.new(self, extract_selector(args).merge(:tag_name => "tfoot"))
2342
2342
  end
2343
-
2343
+
2344
2344
  #
2345
2345
  # @return [TableSectionCollection]
2346
2346
  #
2347
-
2347
+
2348
2348
  def tfoots(*args)
2349
2349
  TableSectionCollection.new(self, extract_selector(args).merge(:tag_name => "tfoot"))
2350
2350
  end
2351
-
2351
+
2352
2352
  Watir.tag_to_class[:tfoot] = TableSection
2353
2353
  #
2354
2354
  # @return [TableHeaderCell]
2355
2355
  #
2356
-
2356
+
2357
2357
  def th(*args)
2358
2358
  TableHeaderCell.new(self, extract_selector(args).merge(:tag_name => "th"))
2359
2359
  end
2360
-
2360
+
2361
2361
  #
2362
2362
  # @return [TableHeaderCellCollection]
2363
2363
  #
2364
-
2364
+
2365
2365
  def ths(*args)
2366
2366
  TableHeaderCellCollection.new(self, extract_selector(args).merge(:tag_name => "th"))
2367
2367
  end
2368
-
2368
+
2369
2369
  Watir.tag_to_class[:th] = TableHeaderCell
2370
2370
  #
2371
2371
  # @return [TableSection]
2372
2372
  #
2373
-
2373
+
2374
2374
  def thead(*args)
2375
2375
  TableSection.new(self, extract_selector(args).merge(:tag_name => "thead"))
2376
2376
  end
2377
-
2377
+
2378
2378
  #
2379
2379
  # @return [TableSectionCollection]
2380
2380
  #
2381
-
2381
+
2382
2382
  def theads(*args)
2383
2383
  TableSectionCollection.new(self, extract_selector(args).merge(:tag_name => "thead"))
2384
2384
  end
2385
-
2385
+
2386
2386
  Watir.tag_to_class[:thead] = TableSection
2387
2387
  #
2388
2388
  # @return [Time]
2389
2389
  #
2390
-
2390
+
2391
2391
  def time(*args)
2392
2392
  Time.new(self, extract_selector(args).merge(:tag_name => "time"))
2393
2393
  end
2394
-
2394
+
2395
2395
  #
2396
2396
  # @return [TimeCollection]
2397
2397
  #
2398
-
2398
+
2399
2399
  def times(*args)
2400
2400
  TimeCollection.new(self, extract_selector(args).merge(:tag_name => "time"))
2401
2401
  end
2402
-
2402
+
2403
2403
  Watir.tag_to_class[:time] = Time
2404
2404
  #
2405
2405
  # @return [Title]
2406
2406
  #
2407
-
2407
+
2408
2408
  def title(*args)
2409
2409
  Title.new(self, extract_selector(args).merge(:tag_name => "title"))
2410
2410
  end
2411
-
2411
+
2412
2412
  #
2413
2413
  # @return [TitleCollection]
2414
2414
  #
2415
-
2415
+
2416
2416
  def titles(*args)
2417
2417
  TitleCollection.new(self, extract_selector(args).merge(:tag_name => "title"))
2418
2418
  end
2419
-
2419
+
2420
2420
  Watir.tag_to_class[:title] = Title
2421
2421
  #
2422
2422
  # @return [TableRow]
2423
2423
  #
2424
-
2424
+
2425
2425
  def tr(*args)
2426
2426
  TableRow.new(self, extract_selector(args).merge(:tag_name => "tr"))
2427
2427
  end
2428
-
2428
+
2429
2429
  #
2430
2430
  # @return [TableRowCollection]
2431
2431
  #
2432
-
2432
+
2433
2433
  def trs(*args)
2434
2434
  TableRowCollection.new(self, extract_selector(args).merge(:tag_name => "tr"))
2435
2435
  end
2436
-
2436
+
2437
2437
  Watir.tag_to_class[:tr] = TableRow
2438
2438
  #
2439
2439
  # @return [Track]
2440
2440
  #
2441
-
2441
+
2442
2442
  def track(*args)
2443
2443
  Track.new(self, extract_selector(args).merge(:tag_name => "track"))
2444
2444
  end
2445
-
2445
+
2446
2446
  #
2447
2447
  # @return [TrackCollection]
2448
2448
  #
2449
-
2449
+
2450
2450
  def tracks(*args)
2451
2451
  TrackCollection.new(self, extract_selector(args).merge(:tag_name => "track"))
2452
2452
  end
2453
-
2453
+
2454
2454
  Watir.tag_to_class[:track] = Track
2455
2455
  #
2456
2456
  # @return [UList]
2457
2457
  #
2458
-
2458
+
2459
2459
  def ul(*args)
2460
2460
  UList.new(self, extract_selector(args).merge(:tag_name => "ul"))
2461
2461
  end
2462
-
2462
+
2463
2463
  #
2464
2464
  # @return [UListCollection]
2465
2465
  #
2466
-
2466
+
2467
2467
  def uls(*args)
2468
2468
  UListCollection.new(self, extract_selector(args).merge(:tag_name => "ul"))
2469
2469
  end
2470
-
2470
+
2471
2471
  Watir.tag_to_class[:ul] = UList
2472
2472
  #
2473
2473
  # @return [HTMLElement]
2474
2474
  #
2475
-
2475
+
2476
2476
  def var(*args)
2477
2477
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "var"))
2478
2478
  end
2479
-
2479
+
2480
2480
  #
2481
2481
  # @return [HTMLElementCollection]
2482
2482
  #
2483
-
2483
+
2484
2484
  def vars(*args)
2485
2485
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "var"))
2486
2486
  end
2487
-
2487
+
2488
2488
  Watir.tag_to_class[:var] = HTMLElement
2489
2489
  #
2490
2490
  # @return [Video]
2491
2491
  #
2492
-
2492
+
2493
2493
  def video(*args)
2494
2494
  Video.new(self, extract_selector(args).merge(:tag_name => "video"))
2495
2495
  end
2496
-
2496
+
2497
2497
  #
2498
2498
  # @return [VideoCollection]
2499
2499
  #
2500
-
2500
+
2501
2501
  def videos(*args)
2502
2502
  VideoCollection.new(self, extract_selector(args).merge(:tag_name => "video"))
2503
2503
  end
2504
-
2504
+
2505
2505
  Watir.tag_to_class[:video] = Video
2506
2506
  #
2507
2507
  # @return [HTMLElement]
2508
2508
  #
2509
-
2509
+
2510
2510
  def wbr(*args)
2511
2511
  HTMLElement.new(self, extract_selector(args).merge(:tag_name => "wbr"))
2512
2512
  end
2513
-
2513
+
2514
2514
  #
2515
2515
  # @return [HTMLElementCollection]
2516
2516
  #
2517
-
2517
+
2518
2518
  def wbrs(*args)
2519
2519
  HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "wbr"))
2520
2520
  end
2521
-
2521
+
2522
2522
  Watir.tag_to_class[:wbr] = HTMLElement
2523
2523
  end # Container
2524
2524
  end # Watir