WAYS TO FIND DYNAMIC XPATH FUNCTIONS IN SELENIUM WEBDRIVER
XPATH FUNCTIONS IN
SELENIUM WEBDRIVER
- XPath: //button[starts-with(@id, 'continue')]
- XPath: //input[contains(@class, 'suggest')].
- XPath: //input[@id='email']/parent::*
- XPath: //input[@id='email']/following::*
- XPath: //input[@id='email']/following::tr
- XPath: //select[@id='month']/following-sibling::*
- XPath: //select[@id='month']/following-sibling::select/
- XPath: //input[@id='pass']/preceding::tr
- XPath: //select[@id='day']/preceding-sibling::select/
- XPath://select[@id='day']/preceding-sibling::*
- //*[contains(@id,’your-common-pattern’)]
Using CSS we can use as below:
- With ID - css=input#email or css=#email
- With Name - css=input[name=email] or css=[name=email]
- xpath : - //*[@id='email' or @name='email']
- xpath: //input[@name='email'][@style='background-color: transparent;']
Some MoreExamples using Xpath
Functions: I often use "contains", but there are
more. Here are some examples:
- Multiple Condition: //div[@class='bubble-title' and contains(text(), 'Cover')]
- Partial match: //span[contains(text(), 'Assign Rate')]
- Starts-with: //input[starts-with(@id,'reportcombo')
- Value has spaces: //div[./div/div[normalize-space(.)='More Actions...']]
- Sibling: //td[.='LoadType']/following-sibling::td[1]/select"
- More complex: //td[contains(normalize-space(@class), 'actualcell sajcell-row-lines saj-special x-grid-row-collapsed')]
- Case sensitive : By.xpath("//td[contains(text(),'youruser')]") //here user text is case sensitive
- By.xpath("//td[contains(lower-case(text()),'youruser')]") //to handle case sensitivity. Here user is not case sensitive
Lets we take sample Example here:
Using single attribute
Syntax
- // tagname[@attribute-name=’value1’]
Example
- // a [@href=’http://www.google.com’]
- //input[@id=’name’]
- //input[@name=’username’]
- //img[@alt=’sometext’]
Sample Example:- .//input[@id='Email'][@name='Email'] – Example for finding Email field in
Gmail.
Using contains method
Syntax
- //tagname[contains(@attribute,’value1’)]
- //input[contains(@id,’’)]
- //input[contains(@name,’’)]
- //a[contains(@href,’’)]
- //img[contains(@src,’’)]
- //div[contains(@id,’’)]
Using multiple attribute
Syntax
- //tagname[@attribute1=’value1’][attribute2=’value2’]
- //a[@id=’id1’][@name=’namevalue1’]
- //img[@src=’’][@href=’’]
Using starts-with method
Syntax
- //tagname[starts-with(@attribute-name,’’)]
- //id[starts-with(@id,’’)]
- //a[starts-with(@href=’’)]
- //img[starts-with(@src=’’)]
- //div[starts-with(@id=’’)]
- //input[starts-with(@id=’’)]
- //button[starts-with(@id,’’)]
Using Following node
Syntax
- Xpath/following::again-ur-regular-path
- //input[@id=’’]/following::input[1]
- //a[@href=’’]/following::a[1]
- //img[@src=’’]/following::img[1]
Using preceding node
Syntax
- //input[@id=’’]/ preceding::input[1]
- //a[@href=’’]/ preceding::a[1]
- //img[@src=’’]/ preceding::img[1]
Comments
Post a Comment