DOM is w3c standard for navigating through the objects of a structured doc,
Same can be used for exercising HTML/XML docs.
In HTML, each element is referred as an object hence text box, dropdown, radio
button etc are objects. These objects have properties (like max length in case
of text box etc) and methods. Herein properties of objects can be collected in
selenium through evaluation of java script and then these can be compared
against expected values. For example one can collect max length and size
properties of text box by evaluating java script through getEval function as
following -
selenium.getEval("var property = new Array(); property[0] =
window.document.getElementsByName('empNumber')[0].maxLength;" +
"property[1] = window.document.getElementsByName('empNumber')[0].size;
property.toString();");
/**** I have explained evaluation of js in issue - 9211 ****/
Now individual properties can be collected in an string array as following -
String[] Textproperties = collectTextProperty.split(",");
And then this can be compared against expected values.
Below I have listed the HTML Element object and their properties which are
useful for testing. Please add on to this if I have missed any.
/*****************************************************************************/
Anchor Object - href
Button Object – disabled
Form Object - elements[]
Frame Object – marginHeight, marginWidth
IFrame Object – height, marginHeight, marginWidth, width
Image Object – height, hspace, vspace, width, src
Checkbox Object - checked, disabled
FileUpload Object – disabled, value
Password Object – defaultValue, disabled, maxLength, size, value
Radio Object – checked, disabled, type, value
Submit Object – disabled, value
Text Object – defaultValue, disabled, maxLength, readOnly, size, value
Link Object – disabled, href
Meta Object – content
Option Object - defaultSelected, disabled, label, selected, text, value
Select Object - options[],disabled, length, multiple, size
/*****************************************************************************/
For details on these properties look here -
http://www.w3schools.com/htmldom/
Selenium also has prebuilt methods which can be used to test the position of
elements in a web page. These methods are as following -
getElementHeight(java.lang.String locator)
getElementPositionLeft(java.lang.String locator)
getElementPositionTop(java.lang.String locator)
getElementWidth(java.lang.String locator)
Using these methods one can build UI tests regarding position of elements.
Note: If you are new to java and selenium then start with selenium java training videos . I prefer css locator over xPath but there are times when css locators don't fit requirement. One such requirement is when you want to navigate to parent element of an element and may be parent of parent and even more. Unfortunately css locators don't provide any mechanism to navigate to parent of an element. See this for more. Of late I came across a scenario when I wanted to click on a link depending upon the text in a text box. Herein parent of text box and parent of link were at the same location. More over there could have been many such combinations in application. Fortunately I just need to pick first such instance and Web Driver any way considers only first instance when multiple locators are found matching an element. Element in question is in following html - Here I need to click on highlighted anchor on the basis of input element (which is also hig...
Comments
Post a Comment
No spam only genuine comments :)