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.
I generally prefer CSS selectors over XPath when writing Selenium locators. CSS selectors are concise, readable, and usually provide everything I need. However, there are situations where XPath is a better fit—particularly when I need to navigate through an element's hierarchy, such as moving from an element to its parent, grandparent, or sibling. This post shows one such real-world example. The Problem I came across a situation where I needed to click a link based on the value of an input field. The HTML structure contained multiple similar groups of elements. The input field and the link I wanted to click were not directly related, but they shared a common parent structure. In the following example above, the input element is highlighted, and I need to click the corresponding anchor ( <a> ) element . The challenge is that there may be multiple similar structures on the page. I therefore need to locate the link relative to the particular input element rather than using a f...
Comments
Post a Comment
No spam only genuine comments :)