watir-webdriver 0.0.1.dev

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 (125) hide show
  1. data/.document +5 -0
  2. data/.gitignore +5 -0
  3. data/.gitmodules +3 -0
  4. data/LICENSE +20 -0
  5. data/README.rdoc +32 -0
  6. data/Rakefile +107 -0
  7. data/TODO +15 -0
  8. data/VERSION +1 -0
  9. data/lib/watir-webdriver.rb +74 -0
  10. data/lib/watir-webdriver/base_element.rb +347 -0
  11. data/lib/watir-webdriver/browser.rb +130 -0
  12. data/lib/watir-webdriver/browserbot.js +34 -0
  13. data/lib/watir-webdriver/collections/buttons_collection.rb +13 -0
  14. data/lib/watir-webdriver/collections/element_collection.rb +45 -0
  15. data/lib/watir-webdriver/collections/table_rows_collection.rb +14 -0
  16. data/lib/watir-webdriver/collections/text_fields_collection.rb +13 -0
  17. data/lib/watir-webdriver/container.rb +24 -0
  18. data/lib/watir-webdriver/core_ext/string.rb +22 -0
  19. data/lib/watir-webdriver/elements/button.rb +27 -0
  20. data/lib/watir-webdriver/elements/checkbox.rb +23 -0
  21. data/lib/watir-webdriver/elements/file_field.rb +20 -0
  22. data/lib/watir-webdriver/elements/form.rb +11 -0
  23. data/lib/watir-webdriver/elements/generated.rb +941 -0
  24. data/lib/watir-webdriver/elements/headings.rb +48 -0
  25. data/lib/watir-webdriver/elements/hidden.rb +18 -0
  26. data/lib/watir-webdriver/elements/image.rb +33 -0
  27. data/lib/watir-webdriver/elements/input.rb +39 -0
  28. data/lib/watir-webdriver/elements/link.rb +13 -0
  29. data/lib/watir-webdriver/elements/option.rb +36 -0
  30. data/lib/watir-webdriver/elements/radio.rb +23 -0
  31. data/lib/watir-webdriver/elements/select_list.rb +73 -0
  32. data/lib/watir-webdriver/elements/shared_radio_checkbox.rb +13 -0
  33. data/lib/watir-webdriver/elements/table.rb +18 -0
  34. data/lib/watir-webdriver/elements/table_row.rb +17 -0
  35. data/lib/watir-webdriver/elements/text_field.rb +60 -0
  36. data/lib/watir-webdriver/exception.rb +20 -0
  37. data/lib/watir-webdriver/locators/button_locator.rb +57 -0
  38. data/lib/watir-webdriver/locators/element_locator.rb +269 -0
  39. data/lib/watir-webdriver/locators/table_row_locator.rb +25 -0
  40. data/lib/watir-webdriver/locators/text_field_locator.rb +61 -0
  41. data/lib/watir-webdriver/xpath_support.rb +23 -0
  42. data/spec/element_locator_spec.rb +11 -0
  43. data/spec/spec_helper.rb +16 -0
  44. data/spec/watirspec/area_spec.rb +78 -0
  45. data/spec/watirspec/areas_spec.rb +31 -0
  46. data/spec/watirspec/browser_spec.rb +262 -0
  47. data/spec/watirspec/button_spec.rb +242 -0
  48. data/spec/watirspec/buttons_spec.rb +48 -0
  49. data/spec/watirspec/checkbox_spec.rb +272 -0
  50. data/spec/watirspec/checkboxes_spec.rb +32 -0
  51. data/spec/watirspec/dd_spec.rb +136 -0
  52. data/spec/watirspec/dds_spec.rb +31 -0
  53. data/spec/watirspec/div_spec.rb +222 -0
  54. data/spec/watirspec/divs_spec.rb +31 -0
  55. data/spec/watirspec/dl_spec.rb +136 -0
  56. data/spec/watirspec/dls_spec.rb +32 -0
  57. data/spec/watirspec/dt_spec.rb +136 -0
  58. data/spec/watirspec/dts_spec.rb +31 -0
  59. data/spec/watirspec/element_spec.rb +87 -0
  60. data/spec/watirspec/em_spec.rb +110 -0
  61. data/spec/watirspec/ems_spec.rb +32 -0
  62. data/spec/watirspec/filefield_spec.rb +119 -0
  63. data/spec/watirspec/filefields_spec.rb +32 -0
  64. data/spec/watirspec/form_spec.rb +63 -0
  65. data/spec/watirspec/forms_spec.rb +33 -0
  66. data/spec/watirspec/frame_spec.rb +140 -0
  67. data/spec/watirspec/frames_spec.rb +62 -0
  68. data/spec/watirspec/hidden_spec.rb +102 -0
  69. data/spec/watirspec/hiddens_spec.rb +32 -0
  70. data/spec/watirspec/hn_spec.rb +93 -0
  71. data/spec/watirspec/hns_spec.rb +38 -0
  72. data/spec/watirspec/image_spec.rb +207 -0
  73. data/spec/watirspec/images_spec.rb +31 -0
  74. data/spec/watirspec/label_spec.rb +75 -0
  75. data/spec/watirspec/labels_spec.rb +31 -0
  76. data/spec/watirspec/li_spec.rb +127 -0
  77. data/spec/watirspec/lib/guards.rb +59 -0
  78. data/spec/watirspec/lib/server.rb +127 -0
  79. data/spec/watirspec/lib/spec_helper.rb +79 -0
  80. data/spec/watirspec/lib/watirspec.rb +72 -0
  81. data/spec/watirspec/link_spec.rb +165 -0
  82. data/spec/watirspec/links_spec.rb +35 -0
  83. data/spec/watirspec/lis_spec.rb +31 -0
  84. data/spec/watirspec/map_spec.rb +92 -0
  85. data/spec/watirspec/maps_spec.rb +32 -0
  86. data/spec/watirspec/meta_spec.rb +22 -0
  87. data/spec/watirspec/metas_spec.rb +30 -0
  88. data/spec/watirspec/ol_spec.rb +78 -0
  89. data/spec/watirspec/ols_spec.rb +31 -0
  90. data/spec/watirspec/option_spec.rb +173 -0
  91. data/spec/watirspec/p_spec.rb +143 -0
  92. data/spec/watirspec/pre_spec.rb +125 -0
  93. data/spec/watirspec/pres_spec.rb +31 -0
  94. data/spec/watirspec/ps_spec.rb +31 -0
  95. data/spec/watirspec/radio_spec.rb +278 -0
  96. data/spec/watirspec/radios_spec.rb +32 -0
  97. data/spec/watirspec/select_list_spec.rb +318 -0
  98. data/spec/watirspec/select_lists_spec.rb +35 -0
  99. data/spec/watirspec/span_spec.rb +157 -0
  100. data/spec/watirspec/spans_spec.rb +57 -0
  101. data/spec/watirspec/spec_helper.rb +17 -0
  102. data/spec/watirspec/strong_spec.rb +89 -0
  103. data/spec/watirspec/strongs_spec.rb +32 -0
  104. data/spec/watirspec/table_bodies_spec.rb +45 -0
  105. data/spec/watirspec/table_body_spec.rb +98 -0
  106. data/spec/watirspec/table_cell_spec.rb +68 -0
  107. data/spec/watirspec/table_cells_spec.rb +47 -0
  108. data/spec/watirspec/table_footer_spec.rb +85 -0
  109. data/spec/watirspec/table_footers_spec.rb +47 -0
  110. data/spec/watirspec/table_header_spec.rb +85 -0
  111. data/spec/watirspec/table_headers_spec.rb +45 -0
  112. data/spec/watirspec/table_row_spec.rb +87 -0
  113. data/spec/watirspec/table_rows_spec.rb +50 -0
  114. data/spec/watirspec/table_spec.rb +166 -0
  115. data/spec/watirspec/tables_spec.rb +33 -0
  116. data/spec/watirspec/text_field_spec.rb +276 -0
  117. data/spec/watirspec/text_fields_spec.rb +35 -0
  118. data/spec/watirspec/ul_spec.rb +76 -0
  119. data/spec/watirspec/uls_spec.rb +33 -0
  120. data/spec/xpath_builder_spec.rb +49 -0
  121. data/support/html5/html5.idl +815 -0
  122. data/support/html5/html5_extras.idl +147 -0
  123. data/support/html5/idl_extractor.rb +73 -0
  124. data/support/html5/watir_visitor.rb +169 -0
  125. metadata +220 -0
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "TextFields" do
5
+
6
+ before :each do
7
+ browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
8
+ end
9
+
10
+ describe "#length" do
11
+ it "returns the number of text fields" do
12
+ browser.text_fields.length.should == 9
13
+ end
14
+ end
15
+
16
+ describe "#[]" do
17
+ it "returns the text field at the given index" do
18
+ browser.text_fields[0].id.should == "new_user_first_name"
19
+ browser.text_fields[1].id.should == "new_user_last_name"
20
+ browser.text_fields[2].id.should == "new_user_email"
21
+ end
22
+ end
23
+
24
+ describe "#each" do
25
+ it "iterates through text fields correctly" do
26
+ browser.text_fields.each_with_index do |r, index|
27
+ r.name.should == browser.text_field(:index, index).name
28
+ r.id.should == browser.text_field(:index, index).id
29
+ r.value.should == browser.text_field(:index, index).value
30
+ end
31
+ end
32
+ end
33
+
34
+
35
+ end
@@ -0,0 +1,76 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "Ul" do
5
+
6
+ before :each do
7
+ browser.goto(WatirSpec.files + "/non_control_elements.html")
8
+ end
9
+
10
+ # Exists method
11
+ describe "#exist?" do
12
+ it "returns true if the 'ul' exists" do
13
+ browser.ul(:id, "navbar").should exist
14
+ browser.ul(:id, /navbar/).should exist
15
+ browser.ul(:index, 0).should exist
16
+ browser.ul(:xpath, "//ul[@id='navbar']").should exist
17
+ end
18
+
19
+ it "returns false if the 'ul' doesn't exist" do
20
+ browser.ul(:id, "no_such_id").should_not exist
21
+ browser.ul(:id, /no_such_id/).should_not exist
22
+ browser.ul(:text, "no_such_text").should_not exist
23
+ browser.ul(:text, /no_such_text/).should_not exist
24
+ browser.ul(:class, "no_such_class").should_not exist
25
+ browser.ul(:class, /no_such_class/).should_not exist
26
+ browser.ul(:index, 1337).should_not exist
27
+ browser.ul(:xpath, "//ul[@id='no_such_id']").should_not exist
28
+ end
29
+
30
+ it "raises TypeError when 'what' argument is invalid" do
31
+ lambda { browser.ul(:id, 3.14).exists? }.should raise_error(TypeError)
32
+ end
33
+
34
+ it "raises MissingWayOfFindingObjectException when 'how' argument is invalid" do
35
+ lambda { browser.ul(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
36
+ end
37
+ end
38
+
39
+ # Attribute methods
40
+ describe "#class_name" do
41
+ it "returns the class attribute" do
42
+ browser.ul(:id, 'navbar').class_name.should == 'navigation'
43
+ end
44
+
45
+ it "returns an empty string if the element exists and the attribute doesn't" do
46
+ browser.ul(:index, 1).class_name.should == ''
47
+ end
48
+
49
+ it "raises UnknownObjectException if the ul doesn't exist" do
50
+ lambda { browser.ul(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
51
+ end
52
+ end
53
+
54
+ describe "#id" do
55
+ it "returns the id attribute" do
56
+ browser.ul(:class, 'navigation').id.should == "navbar"
57
+ end
58
+
59
+ it "returns an empty string if the element exists and the attribute doesn't" do
60
+ browser.ul(:index, 1).id.should == ''
61
+ end
62
+
63
+ it "raises UnknownObjectException if the ul doesn't exist" do
64
+ lambda { browser.ul(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
65
+ lambda { browser.ul(:index, 1337).id }.should raise_error(UnknownObjectException)
66
+ end
67
+ end
68
+
69
+ describe "#respond_to?" do
70
+ it "returns true for all attribute methods" do
71
+ browser.ul(:index, 0).should respond_to(:class_name)
72
+ browser.ul(:index, 0).should respond_to(:id)
73
+ end
74
+ end
75
+
76
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ bug "WTR-332", :watir do
5
+ describe "Uls" do
6
+
7
+ before :each do
8
+ browser.goto(WatirSpec.files + "/non_control_elements.html")
9
+ end
10
+
11
+ describe "#length" do
12
+ it "returns the number of uls" do
13
+ browser.uls.length.should == 2
14
+ end
15
+ end
16
+
17
+ describe "#[]" do
18
+ it "returns the ul at the given index" do
19
+ browser.uls[0].id.should == "navbar"
20
+ end
21
+ end
22
+
23
+ describe "#each" do
24
+ it "iterates through uls correctly" do
25
+ browser.uls.each_with_index do |ul, index|
26
+ ul.id.should == browser.ul(:index, index).id
27
+ ul.value.should == browser.ul(:index, index).value
28
+ end
29
+ end
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require "#{File.dirname(__FILE__)}/spec_helper"
3
+
4
+ # describe Watir::XPathBuilder do
5
+ # def build(selector)
6
+ # XPathBuilder.build_from(selector)
7
+ # end
8
+ #
9
+ # it "builds an xpath from a tag name and a single attribute" do
10
+ # build(
11
+ # :tag_name => "div",
12
+ # :id => "foo"
13
+ # ).should == '//div[@id="foo"]'
14
+ # end
15
+ #
16
+ # it "builds an xpath from a tag name and multiple attributes" do
17
+ # build(
18
+ # :tag_name => "input",
19
+ # :type => "radio",
20
+ # :value => '1'
21
+ # ).should == '//input[@type="radio" and @value="1"]'
22
+ # end
23
+ #
24
+ # it "builds an xpath from a tag name, an attribute and an index" do
25
+ # build(
26
+ # :tag_name => "input",
27
+ # :type => "text",
28
+ # :index => 2
29
+ # ).should == '//input[@type="text"][3]'
30
+ # end
31
+ #
32
+ # it "builds an xpath from a single attribute" do
33
+ # build(
34
+ # :class => 'foo'
35
+ # ).should == '//*[@class="foo"]'
36
+ # end
37
+ #
38
+ # it "builds an xpath from a tag name and index" do
39
+ # build(
40
+ # :tag_name => 'span',
41
+ # :index => 3
42
+ # ).should == '//span[4]'
43
+ # end
44
+ #
45
+ # it "returns nil if any the selector contains a regexp" do
46
+ # build(:tag_name => /span|div/).should be_nil
47
+ # end
48
+
49
+ # end
@@ -0,0 +1,815 @@
1
+ // HTMLElement
2
+ interface HTMLElement : Element {
3
+ // DOM tree accessors
4
+ NodeList getElementsByClassName(in DOMString classNames);
5
+
6
+ // dynamic markup insertion
7
+ attribute DOMString innerHTML;
8
+ attribute DOMString outerHTML;
9
+ void insertAdjacentHTML(in DOMString position, in DOMString text);
10
+
11
+ // metadata attributes
12
+ attribute DOMString id;
13
+ attribute DOMString title;
14
+ attribute DOMString lang;
15
+ attribute DOMString dir;
16
+ attribute DOMString className;
17
+ readonly attribute DOMTokenList classList;
18
+ readonly attribute DOMStringMap dataset;
19
+
20
+ // microdata
21
+ attribute boolean itemScope;
22
+ attribute DOMString itemType;
23
+ attribute DOMString itemId;
24
+ attribute DOMString itemRef;
25
+ [PutForwards=value] readonly attribute DOMSettableTokenList itemProp;
26
+ readonly attribute HTMLPropertiesCollection properties;
27
+ attribute any itemValue;
28
+
29
+ // user interaction
30
+ attribute boolean hidden;
31
+ void click();
32
+ void scrollIntoView();
33
+ void scrollIntoView(in boolean top);
34
+ attribute long tabIndex;
35
+ void focus();
36
+ void blur();
37
+ attribute DOMString accessKey;
38
+ readonly attribute DOMString accessKeyLabel;
39
+ attribute boolean draggable;
40
+ attribute DOMString contentEditable;
41
+ readonly attribute boolean isContentEditable;
42
+ attribute HTMLMenuElement contextMenu;
43
+ attribute DOMString spellcheck;
44
+
45
+ // command API
46
+ readonly attribute DOMString commandType;
47
+ readonly attribute DOMString label;
48
+ readonly attribute DOMString icon;
49
+ readonly attribute boolean disabled;
50
+ readonly attribute boolean checked;
51
+
52
+ // styling
53
+ readonly attribute CSSStyleDeclaration style;
54
+
55
+ // event handler IDL attributes
56
+ attribute Function onabort;
57
+ attribute Function onblur;
58
+ attribute Function oncanplay;
59
+ attribute Function oncanplaythrough;
60
+ attribute Function onchange;
61
+ attribute Function onclick;
62
+ attribute Function oncontextmenu;
63
+ attribute Function ondblclick;
64
+ attribute Function ondrag;
65
+ attribute Function ondragend;
66
+ attribute Function ondragenter;
67
+ attribute Function ondragleave;
68
+ attribute Function ondragover;
69
+ attribute Function ondragstart;
70
+ attribute Function ondrop;
71
+ attribute Function ondurationchange;
72
+ attribute Function onemptied;
73
+ attribute Function onended;
74
+ attribute Function onerror;
75
+ attribute Function onfocus;
76
+ attribute Function onformchange;
77
+ attribute Function onforminput;
78
+ attribute Function oninput;
79
+ attribute Function oninvalid;
80
+ attribute Function onkeydown;
81
+ attribute Function onkeypress;
82
+ attribute Function onkeyup;
83
+ attribute Function onload;
84
+ attribute Function onloadeddata;
85
+ attribute Function onloadedmetadata;
86
+ attribute Function onloadstart;
87
+ attribute Function onmousedown;
88
+ attribute Function onmousemove;
89
+ attribute Function onmouseout;
90
+ attribute Function onmouseover;
91
+ attribute Function onmouseup;
92
+ attribute Function onmousewheel;
93
+ attribute Function onpause;
94
+ attribute Function onplay;
95
+ attribute Function onplaying;
96
+ attribute Function onprogress;
97
+ attribute Function onratechange;
98
+ attribute Function onreadystatechange;
99
+ attribute Function onscroll;
100
+ attribute Function onseeked;
101
+ attribute Function onseeking;
102
+ attribute Function onselect;
103
+ attribute Function onshow;
104
+ attribute Function onstalled;
105
+ attribute Function onsubmit;
106
+ attribute Function onsuspend;
107
+ attribute Function ontimeupdate;
108
+ attribute Function onvolumechange;
109
+ attribute Function onwaiting;
110
+ };
111
+
112
+ interface HTMLTableCellElement : HTMLElement {
113
+ attribute unsigned long colSpan;
114
+ attribute unsigned long rowSpan;
115
+ attribute DOMString headers;
116
+ readonly attribute long cellIndex;
117
+ };
118
+
119
+ interface HTMLModElement : HTMLElement {
120
+ attribute DOMString cite;
121
+ attribute DOMString dateTime;
122
+ };
123
+
124
+ // the-meta-element
125
+ [TagName=meta]
126
+ interface HTMLMetaElement : HTMLElement {
127
+ attribute DOMString name;
128
+ attribute DOMString httpEquiv;
129
+ attribute DOMString content;
130
+ };
131
+
132
+ // the-input-element
133
+ [TagName=input]
134
+ interface HTMLInputElement : HTMLElement {
135
+ attribute DOMString accept;
136
+ attribute DOMString alt;
137
+ attribute boolean autocomplete;
138
+ attribute boolean autofocus;
139
+ attribute boolean defaultChecked;
140
+ attribute boolean checked;
141
+ attribute boolean disabled;
142
+ readonly attribute HTMLFormElement form;
143
+ readonly attribute FileList files;
144
+ attribute DOMString formAction;
145
+ attribute DOMString formEnctype;
146
+ attribute DOMString formMethod;
147
+ attribute boolean formNoValidate;
148
+ attribute DOMString formTarget;
149
+ attribute DOMString height;
150
+ attribute boolean indeterminate;
151
+ readonly attribute HTMLElement list;
152
+ attribute DOMString max;
153
+ attribute long maxLength;
154
+ attribute DOMString min;
155
+ attribute boolean multiple;
156
+ attribute DOMString name;
157
+ attribute DOMString pattern;
158
+ attribute DOMString placeholder;
159
+ attribute boolean readOnly;
160
+ attribute boolean required;
161
+ attribute unsigned long size;
162
+ attribute DOMString src;
163
+ attribute DOMString step;
164
+ attribute DOMString type;
165
+ attribute DOMString defaultValue;
166
+ attribute DOMString value;
167
+ attribute Date valueAsDate;
168
+ attribute float valueAsNumber;
169
+ readonly attribute HTMLOptionElement selectedOption;
170
+ attribute DOMString width;
171
+
172
+ void stepUp(in optional long n);
173
+ void stepDown(in optional long n);
174
+
175
+ readonly attribute boolean willValidate;
176
+ readonly attribute ValidityState validity;
177
+ readonly attribute DOMString validationMessage;
178
+ boolean checkValidity();
179
+ void setCustomValidity(in DOMString error);
180
+
181
+ readonly attribute NodeList labels;
182
+
183
+ void select();
184
+ attribute unsigned long selectionStart;
185
+ attribute unsigned long selectionEnd;
186
+ void setSelectionRange(in unsigned long start, in unsigned long end);
187
+ };
188
+
189
+
190
+ // the-th-element
191
+ [TagName=th]
192
+ interface HTMLTableHeaderCellElement : HTMLTableCellElement {
193
+ attribute DOMString scope;
194
+ };
195
+
196
+
197
+ // the-datalist-element
198
+ [TagName=datalist]
199
+ interface HTMLDataListElement : HTMLElement {
200
+ readonly attribute HTMLCollection options;
201
+ };
202
+
203
+
204
+ // the-object-element
205
+ [TagName=object]
206
+ interface HTMLObjectElement : HTMLElement {
207
+ attribute DOMString data;
208
+ attribute DOMString type;
209
+ attribute DOMString name;
210
+ attribute DOMString useMap;
211
+ readonly attribute HTMLFormElement form;
212
+ attribute DOMString width;
213
+ attribute DOMString height;
214
+ readonly attribute Document contentDocument;
215
+ readonly attribute WindowProxy contentWindow;
216
+
217
+ readonly attribute boolean willValidate;
218
+ readonly attribute ValidityState validity;
219
+ readonly attribute DOMString validationMessage;
220
+ boolean checkValidity();
221
+ void setCustomValidity(in DOMString error);
222
+ };
223
+
224
+
225
+ // the-dl-element
226
+ [TagName=dl]
227
+ interface HTMLDListElement : HTMLElement {};
228
+
229
+
230
+ // the-li-element
231
+ [TagName=li]
232
+ interface HTMLLIElement : HTMLElement {
233
+ attribute long value;
234
+ };
235
+
236
+
237
+ // the-hr-element
238
+ [TagName=hr]
239
+ interface HTMLHRElement : HTMLElement {};
240
+
241
+
242
+ // the-button-element
243
+ [TagName=button]
244
+ interface HTMLButtonElement : HTMLElement {
245
+ attribute boolean autofocus;
246
+ attribute boolean disabled;
247
+ readonly attribute HTMLFormElement form;
248
+ attribute DOMString formAction;
249
+ attribute DOMString formEnctype;
250
+ attribute DOMString formMethod;
251
+ attribute DOMString formNoValidate;
252
+ attribute DOMString formTarget;
253
+ attribute DOMString name;
254
+ attribute DOMString type;
255
+ attribute DOMString value;
256
+
257
+ readonly attribute boolean willValidate;
258
+ readonly attribute ValidityState validity;
259
+ readonly attribute DOMString validationMessage;
260
+ boolean checkValidity();
261
+ void setCustomValidity(in DOMString error);
262
+
263
+ readonly attribute NodeList labels;
264
+ };
265
+
266
+
267
+ // the-tr-element
268
+ [TagName=tr]
269
+ interface HTMLTableRowElement : HTMLElement {
270
+ readonly attribute long rowIndex;
271
+ readonly attribute long sectionRowIndex;
272
+ readonly attribute HTMLCollection cells;
273
+ HTMLElement insertCell(in optional long index);
274
+ void deleteCell(in long index);
275
+ };
276
+
277
+
278
+ // the-tbody-element
279
+ [TagName=tbody]
280
+ interface HTMLTableSectionElement : HTMLElement {
281
+ readonly attribute HTMLCollection rows;
282
+ HTMLElement insertRow(in optional long index);
283
+ void deleteRow(in long index);
284
+ };
285
+
286
+
287
+ // the-area-element
288
+ [TagName=area]
289
+ interface HTMLAreaElement : HTMLElement {
290
+ attribute DOMString alt;
291
+ attribute DOMString coords;
292
+ attribute DOMString shape;
293
+ stringifier attribute DOMString href;
294
+ attribute DOMString target;
295
+ attribute DOMString ping;
296
+ attribute DOMString rel;
297
+ readonly attribute DOMTokenList relList;
298
+ attribute DOMString media;
299
+ attribute DOMString hreflang;
300
+ attribute DOMString type;
301
+
302
+ // URL decomposition IDL attributes
303
+ attribute DOMString protocol;
304
+ attribute DOMString host;
305
+ attribute DOMString hostname;
306
+ attribute DOMString port;
307
+ attribute DOMString pathname;
308
+ attribute DOMString search;
309
+ attribute DOMString hash;
310
+ };
311
+
312
+
313
+ // the-a-element
314
+ [TagName=a]
315
+ interface HTMLAnchorElement : HTMLElement {
316
+ stringifier attribute DOMString href;
317
+ attribute DOMString target;
318
+ attribute DOMString ping;
319
+ attribute DOMString rel;
320
+ readonly attribute DOMTokenList relList;
321
+ attribute DOMString media;
322
+ attribute DOMString hreflang;
323
+ attribute DOMString type;
324
+
325
+ // URL decomposition IDL attributes
326
+ attribute DOMString protocol;
327
+ attribute DOMString host;
328
+ attribute DOMString hostname;
329
+ attribute DOMString port;
330
+ attribute DOMString pathname;
331
+ attribute DOMString search;
332
+ attribute DOMString hash;
333
+ };
334
+
335
+
336
+ // the-pre-element
337
+ [TagName=pre]
338
+ interface HTMLPreElement : HTMLElement {};
339
+
340
+
341
+ // the-details-element
342
+ [TagName=details]
343
+ interface HTMLDetailsElement : HTMLElement {
344
+ attribute boolean open;
345
+ };
346
+
347
+
348
+ // the-optgroup-element
349
+ [TagName=optgroup]
350
+ interface HTMLOptGroupElement : HTMLElement {
351
+ attribute boolean disabled;
352
+ attribute DOMString label;
353
+ };
354
+
355
+
356
+ // the-colgroup-element
357
+ [TagName=colgroup]
358
+ interface HTMLTableColElement : HTMLElement {
359
+ attribute unsigned long span;
360
+ };
361
+
362
+
363
+ // the-embed-element
364
+ [TagName=embed]
365
+ interface HTMLEmbedElement : HTMLElement {
366
+ attribute DOMString src;
367
+ attribute DOMString type;
368
+ attribute DOMString width;
369
+ attribute DOMString height;
370
+ };
371
+
372
+
373
+ // the-link-element
374
+ [TagName=link]
375
+ interface HTMLLinkElement : HTMLElement {
376
+ attribute boolean disabled;
377
+ attribute DOMString href;
378
+ attribute DOMString rel;
379
+ readonly attribute DOMTokenList relList;
380
+ attribute DOMString media;
381
+ attribute DOMString hreflang;
382
+ attribute DOMString type;
383
+ attribute DOMString sizes;
384
+ };
385
+ HTMLLinkElement implements LinkStyle;
386
+
387
+
388
+ // the-html-element-0
389
+ [TagName=html]
390
+ interface HTMLHtmlElement : HTMLElement {};
391
+
392
+
393
+ // the-option-element
394
+ [TagName=option,
395
+ NamedConstructor=Option(),
396
+ NamedConstructor=Option(in DOMString text),
397
+ NamedConstructor=Option(in DOMString text, in DOMString value),
398
+ NamedConstructor=Option(in DOMString text, in DOMString value, in boolean defaultSelected),
399
+ NamedConstructor=Option(in DOMString text, in DOMString value, in boolean defaultSelected, in boolean selected)]
400
+ interface HTMLOptionElement : HTMLElement {
401
+ attribute boolean disabled;
402
+ readonly attribute HTMLFormElement form;
403
+ attribute DOMString label;
404
+ attribute boolean defaultSelected;
405
+ attribute boolean selected;
406
+ attribute DOMString value;
407
+
408
+ attribute DOMString text;
409
+ readonly attribute long index;
410
+ };
411
+
412
+
413
+ // the-legend-element
414
+ [TagName=legend]
415
+ interface HTMLLegendElement : HTMLElement {
416
+ readonly attribute HTMLFormElement form;
417
+ };
418
+
419
+
420
+ // the-form-element
421
+ [TagName=form,OverrideBuiltins]
422
+ interface HTMLFormElement : HTMLElement {
423
+ attribute DOMString acceptCharset;
424
+ attribute DOMString action;
425
+ attribute boolean autocomplete;
426
+ attribute DOMString enctype;
427
+ attribute DOMString method;
428
+ attribute DOMString name;
429
+ attribute boolean noValidate;
430
+ attribute DOMString target;
431
+
432
+ readonly attribute HTMLFormControlsCollection elements;
433
+ readonly attribute long length;
434
+ caller getter any item(in unsigned long index);
435
+ caller getter any namedItem(in DOMString name);
436
+
437
+ void submit();
438
+ void reset();
439
+ boolean checkValidity();
440
+
441
+ void dispatchFormInput();
442
+ void dispatchFormChange();
443
+ };
444
+
445
+
446
+ // the-param-element
447
+ [TagName=param]
448
+ interface HTMLParamElement : HTMLElement {
449
+ attribute DOMString name;
450
+ attribute DOMString value;
451
+ };
452
+
453
+
454
+ // the-iframe-element
455
+ [TagName=iframe]
456
+ interface HTMLIFrameElement : HTMLElement {
457
+ attribute DOMString src;
458
+ attribute DOMString name;
459
+ attribute DOMString sandbox;
460
+ attribute boolean seamless;
461
+ attribute DOMString width;
462
+ attribute DOMString height;
463
+ readonly attribute Document contentDocument;
464
+ readonly attribute WindowProxy contentWindow;
465
+ };
466
+
467
+
468
+ // the-img-element
469
+ [TagName=img,
470
+ NamedConstructor=Image(),
471
+ NamedConstructor=Image(in unsigned long width),
472
+ NamedConstructor=Image(in unsigned long width, in unsigned long height)]
473
+ interface HTMLImageElement : HTMLElement {
474
+ attribute DOMString alt;
475
+ attribute DOMString src;
476
+ attribute DOMString useMap;
477
+ attribute boolean isMap;
478
+ attribute unsigned long width;
479
+ attribute unsigned long height;
480
+ readonly attribute unsigned long naturalWidth;
481
+ readonly attribute unsigned long naturalHeight;
482
+ readonly attribute boolean complete;
483
+ };
484
+
485
+
486
+ // the-progress-element
487
+ [TagName=progress]
488
+ interface HTMLProgressElement : HTMLElement {
489
+ attribute float value;
490
+ attribute float max;
491
+ readonly attribute float position;
492
+ };
493
+
494
+
495
+ // the-time-element
496
+ [TagName=time]
497
+ interface HTMLTimeElement : HTMLElement {
498
+ attribute DOMString dateTime;
499
+ attribute boolean pubDate;
500
+ readonly attribute Date valueAsDate;
501
+ };
502
+
503
+
504
+ // the-ul-element
505
+ [TagName=ul]
506
+ interface HTMLUListElement : HTMLElement {};
507
+
508
+
509
+ // the-blockquote-element
510
+ [TagName=blockquote]
511
+ interface HTMLQuoteElement : HTMLElement {
512
+ attribute DOMString cite;
513
+ };
514
+
515
+
516
+ // the-style-element
517
+ [TagName=style]
518
+ interface HTMLStyleElement : HTMLElement {
519
+ attribute boolean disabled;
520
+ attribute DOMString media;
521
+ attribute DOMString type;
522
+ attribute boolean scoped;
523
+ };
524
+ HTMLStyleElement implements LinkStyle;
525
+
526
+
527
+ // the-output-element
528
+ [TagName=output]
529
+ interface HTMLOutputElement : HTMLElement {
530
+ attribute DOMString htmlFor;
531
+ readonly attribute HTMLFormElement form;
532
+ attribute DOMString name;
533
+
534
+ readonly attribute DOMString type;
535
+ attribute DOMString defaultValue;
536
+ attribute DOMString value;
537
+
538
+ readonly attribute boolean willValidate;
539
+ readonly attribute ValidityState validity;
540
+ readonly attribute DOMString validationMessage;
541
+ boolean checkValidity();
542
+ void setCustomValidity(in DOMString error);
543
+ };
544
+
545
+
546
+ // the-caption-element
547
+ [TagName=caption]
548
+ interface HTMLTableCaptionElement : HTMLElement {};
549
+
550
+
551
+ // the-table-element
552
+ [TagName=table]
553
+ interface HTMLTableElement : HTMLElement {
554
+ attribute HTMLTableCaptionElement caption;
555
+ HTMLElement createCaption();
556
+ void deleteCaption();
557
+ attribute HTMLTableSectionElement tHead;
558
+ HTMLElement createTHead();
559
+ void deleteTHead();
560
+ attribute HTMLTableSectionElement tFoot;
561
+ HTMLElement createTFoot();
562
+ void deleteTFoot();
563
+ readonly attribute HTMLCollection tBodies;
564
+ HTMLElement createTBody();
565
+ readonly attribute HTMLCollection rows;
566
+ HTMLElement insertRow(in optional long index);
567
+ void deleteRow(in long index);
568
+ attribute DOMString summary;
569
+ };
570
+
571
+
572
+ // the-p-element
573
+ [TagName=p]
574
+ interface HTMLParagraphElement : HTMLElement {};
575
+
576
+
577
+ // the-body-element-0
578
+ [TagName=body]
579
+ interface HTMLBodyElement : HTMLElement {
580
+ attribute Function onafterprint;
581
+ attribute Function onbeforeprint;
582
+ attribute Function onbeforeunload;
583
+ attribute Function onblur;
584
+ attribute Function onerror;
585
+ attribute Function onfocus;
586
+ attribute Function onhashchange;
587
+ attribute Function onload;
588
+ attribute Function onmessage;
589
+ attribute Function onoffline;
590
+ attribute Function ononline;
591
+ attribute Function onpopstate;
592
+ attribute Function onpagehide;
593
+ attribute Function onpageshow;
594
+ attribute Function onredo;
595
+ attribute Function onresize;
596
+ attribute Function onstorage;
597
+ attribute Function onundo;
598
+ attribute Function onunload;
599
+ };
600
+
601
+
602
+ // the-head-element-0
603
+ [TagName=head]
604
+ interface HTMLHeadElement : HTMLElement {};
605
+
606
+
607
+ // the-map-element
608
+ [TagName=map]
609
+ interface HTMLMapElement : HTMLElement {
610
+ attribute DOMString name;
611
+ readonly attribute HTMLCollection areas;
612
+ readonly attribute HTMLCollection images;
613
+ };
614
+
615
+
616
+ // the-div-element
617
+ [TagName=div]
618
+ interface HTMLDivElement : HTMLElement {};
619
+
620
+
621
+ // the-textarea-element
622
+ [TagName=textarea]
623
+ interface HTMLTextAreaElement : HTMLElement {
624
+ attribute boolean autofocus;
625
+ attribute unsigned long cols;
626
+ attribute boolean disabled;
627
+ readonly attribute HTMLFormElement form;
628
+ attribute long maxLength;
629
+ attribute DOMString name;
630
+ attribute DOMString placeholder;
631
+ attribute boolean readOnly;
632
+ attribute boolean required;
633
+ attribute unsigned long rows;
634
+ attribute DOMString wrap;
635
+
636
+ readonly attribute DOMString type;
637
+ attribute DOMString defaultValue;
638
+ attribute DOMString value;
639
+ readonly attribute unsigned long textLength;
640
+
641
+ readonly attribute boolean willValidate;
642
+ readonly attribute ValidityState validity;
643
+ readonly attribute DOMString validationMessage;
644
+ boolean checkValidity();
645
+ void setCustomValidity(in DOMString error);
646
+
647
+ readonly attribute NodeList labels;
648
+
649
+ void select();
650
+ attribute unsigned long selectionStart;
651
+ attribute unsigned long selectionEnd;
652
+ void setSelectionRange(in unsigned long start, in unsigned long end);
653
+ };
654
+
655
+
656
+ // the-td-element
657
+ [TagName=td]
658
+ interface HTMLTableDataCellElement : HTMLTableCellElement {};
659
+
660
+
661
+ // the-canvas-element
662
+ [TagName=canvas]
663
+ interface HTMLCanvasElement : HTMLElement {
664
+ attribute unsigned long width;
665
+ attribute unsigned long height;
666
+
667
+ DOMString toDataURL(in optional DOMString type, in any... args);
668
+
669
+ Object getContext(in DOMString contextId);
670
+ };
671
+
672
+
673
+ // the-br-element
674
+ [TagName=br]
675
+ interface HTMLBRElement : HTMLElement {};
676
+
677
+
678
+ // the-title-element-0
679
+ [TagName=title]
680
+ interface HTMLTitleElement : HTMLElement {
681
+ attribute DOMString text;
682
+ };
683
+
684
+
685
+ // the-meter-element
686
+ [TagName=meter]
687
+ interface HTMLMeterElement : HTMLElement {
688
+ attribute float value;
689
+ attribute float min;
690
+ attribute float max;
691
+ attribute float low;
692
+ attribute float high;
693
+ attribute float optimum;
694
+ };
695
+
696
+
697
+ // the-h1-h2-h3-h4-h5-and-h6-elements
698
+ [TagName=h1]
699
+ interface HTMLHeadingElement : HTMLElement {};
700
+
701
+
702
+ // the-base-element
703
+ [TagName=base]
704
+ interface HTMLBaseElement : HTMLElement {
705
+ attribute DOMString href;
706
+ attribute DOMString target;
707
+ };
708
+
709
+ interface HTMLUnknownElement : HTMLElement { };
710
+
711
+
712
+ // the-select-element
713
+ [TagName=select]
714
+ interface HTMLSelectElement : HTMLElement {
715
+ attribute boolean autofocus;
716
+ attribute boolean disabled;
717
+ readonly attribute HTMLFormElement form;
718
+ attribute boolean multiple;
719
+ attribute DOMString name;
720
+ attribute unsigned long size;
721
+
722
+ readonly attribute DOMString type;
723
+
724
+ readonly attribute HTMLOptionsCollection options;
725
+ attribute unsigned long length;
726
+ caller getter any item(in unsigned long index);
727
+ caller getter any namedItem(in DOMString name);
728
+ void add(in HTMLElement element, in optional HTMLElement before);
729
+ void add(in HTMLElement element, in long before);
730
+ void remove(in long index);
731
+
732
+ readonly attribute HTMLCollection selectedOptions;
733
+ attribute long selectedIndex;
734
+ attribute DOMString value;
735
+
736
+ readonly attribute boolean willValidate;
737
+ readonly attribute ValidityState validity;
738
+ readonly attribute DOMString validationMessage;
739
+ boolean checkValidity();
740
+ void setCustomValidity(in DOMString error);
741
+
742
+ readonly attribute NodeList labels;
743
+ };
744
+
745
+
746
+ // the-label-element
747
+ [TagName=label]
748
+ interface HTMLLabelElement : HTMLElement {
749
+ readonly attribute HTMLFormElement form;
750
+ attribute DOMString htmlFor;
751
+ readonly attribute HTMLElement control;
752
+ };
753
+
754
+
755
+ // the-keygen-element
756
+ [TagName=keygen]
757
+ interface HTMLKeygenElement : HTMLElement {
758
+ attribute boolean autofocus;
759
+ attribute DOMString challenge;
760
+ attribute boolean disabled;
761
+ readonly attribute HTMLFormElement form;
762
+ attribute DOMString keytype;
763
+ attribute DOMString name;
764
+
765
+ readonly attribute DOMString type;
766
+
767
+ readonly attribute boolean willValidate;
768
+ readonly attribute ValidityState validity;
769
+ readonly attribute DOMString validationMessage;
770
+ boolean checkValidity();
771
+ void setCustomValidity(in DOMString error);
772
+
773
+ readonly attribute NodeList labels;
774
+ };
775
+
776
+
777
+ // the-fieldset-element
778
+ [TagName=fieldset]
779
+ interface HTMLFieldSetElement : HTMLElement {
780
+ attribute boolean disabled;
781
+ readonly attribute HTMLFormElement form;
782
+ attribute DOMString name;
783
+
784
+ readonly attribute DOMString type;
785
+
786
+ readonly attribute HTMLFormControlsCollection elements;
787
+
788
+ readonly attribute boolean willValidate;
789
+ readonly attribute ValidityState validity;
790
+ readonly attribute DOMString validationMessage;
791
+ boolean checkValidity();
792
+ void setCustomValidity(in DOMString error);
793
+ };
794
+
795
+
796
+ // the-source-element
797
+ [TagName=source]
798
+ interface HTMLSourceElement : HTMLElement {
799
+ attribute DOMString src;
800
+ attribute DOMString type;
801
+ attribute DOMString media;
802
+ };
803
+
804
+
805
+ // the-span-element
806
+ [TagName=span]
807
+ interface HTMLSpanElement : HTMLElement {};
808
+
809
+
810
+ // the-ol-element
811
+ [TagName=ol]
812
+ interface HTMLOListElement : HTMLElement {
813
+ attribute boolean reversed;
814
+ attribute long start;
815
+ };