I am using selenium to test my web application and I can successfully find tags using By.xpath
. However now and then I need to find child nodes within that node.
Example:
<div id="a">
<div>
<span />
<input />
</div>
</div>
I can do:
WebElement divA = driver.findElement( By.xpath( "//div[@id='a']"))
But now I need to find the input, so I could do:
driver.findElement( By.xpath( "//div[@id='a']//input" ) )
However, at that point in code I only have divA, not its xpath anymore... I would like to do something like this:
WebElement input = driver.findElement( divA, By.xpath( "//input" ) );
But such a function does not exist. Can I do this anyhow?
BTW: Sometimes I need to find a <div> that has a certain descendent node. How can I ask in xpath for "the <div> that contains a <span> with the text "hello world'"?