watir-webdriver 0.0.1.dev

Sign up to get free protection for your applications and to get access to all the features.
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
+ };