@@ -87,28 +87,37 @@ public interface WebElement extends SearchContext, TakesScreenshot {
87
87
String getTagName ();
88
88
89
89
/**
90
- * Get the value of a the given attribute of the element. Will return the current value, even if
91
- * this has been modified after the page has been loaded. More exactly, this method will return
92
- * the value of the given attribute, unless that attribute is not present, in which case the value
93
- * of the property with the same name is returned (for example for the "value" property of a
94
- * textarea element). If neither value is set, null is returned. The "style" attribute is
95
- * converted as best can be to a text representation with a trailing semi-colon. The following are
96
- * deemed to be "boolean" attributes, and will return either "true" or null:
97
- * <p>
98
- * async, autofocus, autoplay, checked, compact, complete, controls, declare, defaultchecked,
90
+ * Get the value of the given attribute of the element. Will return the current value, even if
91
+ * this has been modified after the page has been loaded.
92
+ *
93
+ * <p>More exactly, this method will return the value of the property with the given name, if it
94
+ * exists. If it does not, then the value of the attribute with the given name is returned. If
95
+ * neither exists, null is returned.
96
+ *
97
+ * <p>The "style" attribute is converted as best can be to a text representation with a trailing
98
+ * semi-colon.
99
+ *
100
+ * <p>The following are deemed to be "boolean" attributes, and will return either "true" or null:
101
+ *
102
+ * <p>async, autofocus, autoplay, checked, compact, complete, controls, declare, defaultchecked,
99
103
* defaultselected, defer, disabled, draggable, ended, formnovalidate, hidden, indeterminate,
100
104
* iscontenteditable, ismap, itemscope, loop, multiple, muted, nohref, noresize, noshade,
101
105
* novalidate, nowrap, open, paused, pubdate, readonly, required, reversed, scoped, seamless,
102
- * seeking, selected, spellcheck, truespeed, willvalidate
103
- * <p>
104
- * Finally, the following commonly mis-capitalized attribute/property names are evaluated as
106
+ * seeking, selected, truespeed, willvalidate
107
+ *
108
+ * <p> Finally, the following commonly mis-capitalized attribute/property names are evaluated as
105
109
* expected:
106
- * <p>
110
+ *
107
111
* <ul>
108
- * <li>"class"
109
- * <li>"readonly"
112
+ * <li>If the given name is "class", the "className" property is returned.
113
+ * <li>If the given name is "readonly", the "readOnly" property is returned.
110
114
* </ul>
111
115
*
116
+ * <i>Note:</i> The reason for this behavior is that users frequently confuse attributes and
117
+ * properties. If you need to do something more precise, e.g., refer to an attribute even when a
118
+ * property of the same name exists, then you should evaluate Javascript to obtain the result
119
+ * you desire.
120
+ *
112
121
* @param name The name of the attribute.
113
122
* @return The attribute/property's current value or null if the value is not set.
114
123
*/
0 commit comments