2013-12-17 63 views
0

我想获取td [3]的所有值。我有下面的代码如何使用Xpath获取所有值Selenium

<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
</tr> 
<tr> 
    <td>4</td> 
    <td>5</td> 
    <td>6</td> 
</tr> 
<tr> 
    <td>7</td> 
    <td>8</td> 
    <td>9</td> 
</tr> 
<tr> 
    <td>10</td> 
    <td>11</td> 
    <td>12</td> 
</tr> 
WebElement test; 
test=driver.findElement(By.xpath("./" +value)); // here /*/*/td[5] is passed as param 
System.out.println("Values : " +test.getText()); 

我试图/*/*/td[3]但它只是给我的只有第一个值。

谢谢!

回答

0
//tr/td[3] 

返回每个第三td元素,tr元素的孩子。

+0

对不起,我刚刚更新了我的代码。但我只是得到第一个元素。 – Jay

+3

@Jay您正在使用'findElement',它返回_one_元素。您应该使用'findElements'来获取元素列表。 –

+0

哦,好吧,让我试试。谢谢! – Jay

0

你可以使用下面的代码属于第3列的所有数据:

List <WebElement> allRows = driver.findElements(By.xpath("\\table\\tr")); 

for(int i=0; i<allRows.size(); i++){ 

     WebElement col3Element = allRows.get(i).findElement(By.xpath("\td[3]")); 

     System.out.println(" Row " + i "Columnn 3 data: " + col3Element.getText()); 

}