XPath
XPath is abbreviated as XML Path. Xpath is used to find the location of any element on the web page using HTML DOM structure.
Basic format of XPath is :
Xpath = //tagnanme[@attribute='value']
It starts with the '//' , which means it can search the element at the webpage.
example:
Basic format of XPath is :
Xpath = //tagnanme[@attribute='value']
- // : Select current node.
- Tagname : Tagname of the particular node. eg : input, img, div etc
- @ : Select attribute.
- Value : Value of the attribute.
Different locators are used to find the element on web pages accurately.
- ID
- ClassName
- Name
- LinkText
- XPath
- CSSPath
Types of XPath:
- Absolute XPath
- Relative XPath
Absolute xpath:
It is direct way to find the element right from the root element of the webpage.
The disadvantage of the absolute xpath is that if there are any changes made in the path of the element then xpath gets failed.
It begins with the single forward slash(/), which means you can select the element from the root node.
example :
html/body/div[1]/section/div[1]/div/div/div/div[1]/div/div/div/div/div[3]/div[1]/div/h4[1]/b
Relative xpath:
XPath can start from the middle HTML DOM structure.It starts with the '//' , which means it can search the element at the webpage.
example:
//*[@class='featured-box']//*[text()='Testing']
XPath Axes:
Axes are the methods used to find dynamic elements, which otherwise not possible to find element by XPath method using ID, ClassName, Name etc.
Axes methods usually used to fins those elements, which dynamically change on refresh or any other operations.
There are few axes methods commonly used in Selenium Webdriver like child, parent, ancestor, sibling, preceding, self etc.
- ancestor - select parent or grand parent.
- following-sibling - which follows.
- preceding-sibling - which precedes.
- descendant - child/SubChild.
- parent - Select Immediate Parent.
- child - Select Immediate Child.
- following - Select all the matching nodes which are following.
- preceding - Select all the matching nodes which are preceding.
Practical Usage:
//a[contains(text().'Dayananda']/parent::td
//a[contains(text().'Dayananda']/ancestor::tr
//a[contains(text().'Dayananda']/parent::td/following::td
Using Xpath Handling Complex and Dynamic elements in Selenium.
1. Basic XPath:
example :
Xpath=//input[@type='text'] Xpath= //label[@id='message23'] Xpath= //input[@value='RESET'] Xpath=//*[@class='barone'] Xpath=//a[@href='http://demo.guru99.com/'] Xpath= //img[@src='//cdn.guru99.com/images/home/java.png']
2. Contains():
Contains() is a method used in XPath expression. It is used when the value of any attribute changes dynamically.
The contain feature has an ability to find the element with partial text.
example :
Complete value of attribute 'type' is 'submit' but using only partial value 'sub'
Xpath=//*[contains(@type,'sub')]
Xpath=//*[contains(text(),'here')]
3. Using OR & AND:
example:
Xpath=//*[@type='submit' OR @name='btnReset']
4. Text():
With text function, we find the element with exact text match.
example:
Xpath=//td[text()='UserID']
Thank You!
Happy Learning
Comments
Post a Comment