让每个人都在桌子上

时间:2014-10-27 16:46:30

标签: java selenium selenium-webdriver ui-automation gui-testing

我有一张表格,如:

<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>
有可能吗?任何人都知道如何使用selenium-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答案的例子,:))

1 个答案:

答案 0 :(得分:0)

以下示例在Python中,但它应该让您了解如何执行此操作。基本上,通过任何可用的方式获取表元素。然后,在该元素上,调用findElements搜索标记名为&#34; th&#34;的所有元素。这将为您提供该特定表中所有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());
}