【问题标题】:Getting each <th> on the Table将每个 <th> 放在桌子上
【发布时间】:2014-10-27 16:46:30
【问题描述】:

我有一张桌子,结构如下:

<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>

如何从&lt;th&gt; 获取值?
我的想法是:创建一个会在桌子周围跑来跑去的每个&lt;th&gt;
有可能吗?任何人都知道如何使用 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 的答案的例子,:)

【问题讨论】:

  • 通常情况下,所有&lt;th&gt; 标签都放在第一个&lt;tr&gt;
  • 是的,但是在这种情况下,每个 TR 都有一个 TH

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


【解决方案1】:

以下示例是用 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());
}

【讨论】:

  • 下面是JAVA列表中的代码 tableElement = driver.findElements(By.id("tableid")); List thElements = tableElement.findElements(By.tagName("th")); for (int i = 0; i
  • 看看你的例子,我创建了这个:pastebin.com/T5tr429L 它正在工作,谢谢你,安迪!现在,在这个脚本运行之前,我需要验证我的表中有多少个&lt;th&gt;,你知道怎么做吗?我认为我需要在此之前创建另一个 FOR..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多