2014-10-27 55 views
0

每個我有一個表被strutured像:入門的表

<Table> 
<tr class="x1"> 
<th>test</th> 
<td>...</td> 
<td>...</td> 
<td>...</td> 
<td>...</td> 
</tr> 
<tr class="x2"> 
<th>test2</th> 
<td>...</td> 
<td>...</td> 
<td>...</td> 
<td>...</td> 
</tr> 
<tr class="x3"> 
<th>test3</th> 
<td>...</td> 
<td>...</td> 
<td>...</td> 
<td>...</td> 
</tr> 
</table> 

我如何取值從<th>
我的想法是:創建一個可以在桌子上跑來跑去的每個<th>
可能嗎?任何人有任何想法,我怎麼能做到這一點使用硒的webdriver(JAVA)

我給這家 ArrayList<String> tableList = new ArrayList<String>(); for(int i = 1; i<=NUMBEROFROWSINYOURTABLE;i++){ tableList.add(driver.findElement(By.xpath("//div[@id='heatmap-container']/table/tbody/tr["+i+"]/th")).getAttribute("title")); }

的解決方案,但你可以按照@AndyPerfect的答案的例子太多,:)

+0

通常情況下,所有的''標籤的走在第一個'' – 2014-10-27 16:49:49

+0

是的,但在這種情況下,每Tr有TH – 2014-10-27 17:04:06

回答

0

下面的例子在Python中,但它應該給你一個如何去做的想法。基本上,通過任何可用的方法獲取表格元素。然後,在該元素上,調用findElements搜索標籤名稱爲「th」的所有元素。這將給你一個在該特定表內的所有th元素的列表。然後,只需遍歷元素並打印它們的值或其他值。

table_element = driver.find_element_by_id("tableid") 
th_elements = table_element.find_elements_by_tag_name("th") 
for element in th_elements: 
    print element.text 

在Java中,它會是這個樣子

WebElement tableElement = driver.findElement(By.id("tableid")); 
List<WebElement> thElements = tableElement.findElements(By.tagName("th")); 
for (int i = 0; i < thElements.size(); i++) { 
    System.out.println(thElements.get(i).getText()); 
} 
+0

以下是JAVA列表中的代碼 tableElement = driver.findElements(By.id(「tableid」)); 列表 thElements = tableElement.findElements(By.tagName(「th」));對於(int i = 0; i 2014-10-27 17:16:52

+0

感謝您的支持,Rishi。我會更新答案 – AndyPerfect 2014-10-27 17:18:25

+0

不客氣安迪 – 2014-10-27 17:19:27