Monday, 18 April 2016

Selenium Question

-          Assume, given web application contains 10 dynamic text boxes.
-          Text box placing/location will also changes dynamically.
-          Now we need to key in text in one specific text box, which does not contain any unique locator ( We are not able to find out uniqueness with partial text too )

How you do you achieve this?                                                  

Analysis:
-          No unique ID , tool tip, value, css style, etc.
-          We are not able to draw unique ness with partial ID / text / value / etc

Tip:
-          Only one control is having unique ID and whose position is dynamic.
      

  Idea:
-          Can we use below Xpath selectors


AxisName
Result
ancestor
Selects all ancestors (parent, grandparent, etc.) of the current node
ancestor-or-self
Selects all ancestors (parent, grandparent, etc.) of the current node and the current node itself
attribute
Selects all attributes of the current node
child
Selects all children of the current node
descendant
Selects all descendants (children, grandchildren, etc.) of the current node
descendant-or-self
Selects all descendants (children, grandchildren, etc.) of the current node and the current node itself
following
Selects everything in the document after the closing tag of the current node
following-sibling
Selects all siblings after the current node
namespace
Selects all namespace nodes of the current node
parent
Selects the parent of the current node
preceding
Selects all nodes that appear before the current node in the document, except ancestors, attribute nodes and namespace nodes
preceding-sibling
Selects all siblings before the current node
self
Selects the current node


Examples:

Example
Result
child::book
Selects all book nodes that are children of the current node
attribute::lang
Selects the lang attribute of the current node
child::*
Selects all element children of the current node
attribute::*
Selects all attributes of the current node
child::text()
Selects all text node children of the current node
child::node()
Selects all children of the current node
descendant::book
Selects all book descendants of the current node
ancestor::book
Selects all book ancestors of the current node
ancestor-or-self::book
Selects all book ancestors of the current node - and the current as well if it is a book node
child::*/child::price
Selects all price grandchildren of the current node




Examples:


//td[text() = ' Color Digest ']/following-sibling::td[2]
//h2[contains(text(),'Hello')]/parent::div//div[//a[text()='SELENIUM']]/following-sibling::div[@class='rt-grid-2']

No comments:

Post a Comment