2013-12-17 36 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()); 

}