Locating child nodes of WebElements in selenium

0
0

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 any more…
I would like to do something like this:

WebElement input = driver.findElement( divA, By.xpath( "//input" ) );

But such an function does not exist.
Can I do this anyhow?

BTW: Sometimes I need to find a DIV that has a certain decendent node. How can I ask in xpath for “the div-tag that contains a span with the text ‘hello world'”?

  • You must to post comments
0
0

According to JavaDocs, you can do this:

WebElement input = divA.findElement(By.xpath(".//input"));


How can I ask in xpath for “the div-tag that contains a span with the
text ‘hello world'”?

WebElement elem = driver.findElement(By.xpath("//div[span[text()='hello world']]"));

The XPath spec is a suprisingly good read on this.

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website