Nipun Tanay
Nipun Tanay

Reputation: 59

How to select multiple tags in an xpath

Please visit the website "http://www.cricbuzz.com/cricket-series/2223/icc-cricket-world-cup-2015/points-table"

<table class="table cb-srs-pnts">
<thead>
<tr class="cb-srs-gray-strip">
<th class="cb-col-20 cb-srs-pnts-th text-left" style="padding-left: 6px;">Pool B</th>
<td class="cb-srs-pnts-th">Mat</td>
<td class="cb-srs-pnts-th">Won</td>
<td class="cb-srs-pnts-th">Lost</td>
<td class="cb-srs-pnts-th">Tied</td>
<td class="cb-srs-pnts-th">NR</td>
<th class=" cb-srs-pnts-th">Pts</th>
<td class="cb-srs-pnts-th">NRR</td>
<th/>
</tr>
</thead>
<tbody>
</table>

I have to print all the table headings present for first table. It has a combination of "td" and "th" tags.

I am using the following xpath to retrive them.

//h3/../table[1]/thead/tr/*[self::td or self::th]

All the values are getting printed except for the text "Pool B" Can somebody tell me why "Pool B" text is not getting selected?

Code to print the output:

driver.get("cricbuzz.com/cricket-series/2223/icc-cricket-world-cup-2015/…); 
System.out.println(driver.findElement(By.xpath(" //h3/../table[1]/thead/tr/th")‌​).getText()); 
List<WebElement> tableHeading = driver.findElements(By .xpath("//h3/../table[1]/thead/tr/*[self: : tdorself: : th]")); 
for (int i = 1; i < tableHeading.size(); i++) 
{ 
   System.out.println(i+""+tableHeading.get(i).getText()); 
}

Upvotes: 1

Views: 452

Answers (1)

bit
bit

Reputation: 4487

Set the index to 0 in your for loop:

for (int i = 0; i < tableHeading.size(); i++) 
{ 
   System.out.println(i+""+tableHeading.get(i).getText()); 
}

Upvotes: 1

Related Questions