Просто интересно, есть ли лучший способ получить значения из таблицы в селене 2. В настоящее время я использую 2 для циклов, которые я зацикливаю для каждого TR, и внутри каждого TR, я зацикливаюсь для всех TD.так, например, если у меня есть строка таблицы с 10 столбцами, я повторяю цикл 10 раз и извлекаю текстовое значение.Это кажется мне неуклюжим.
Моя таблица Rows выглядит так
<tr id="cTestData" class="odd">
<td class="date_activated">08/31/2011</td>
<td class="date_redeemed"> Not redeemed * </td>
<td class="expiration_date">09/01/2011</td>
<td class="product"> State of Maine </td>
<td class="value">$1.00</td>
<td class="store"> – – – </td>
<td class="offer_details">
</tr>
Я думаю, что я должен быть в состоянии сказать для каждой таблицы Row, получить мне элемент TD с class = date_activation и вернуть его.Я попробовал несколько вещей, но, похоже, ничего не работало, основываясь на имени класса TD = foo
Если это поможет, мой фактический код будет
for(WebElement trElement : tr_collection)
{
List<WebElement> td_collection=trElement.findElements(By.xpath("td"));
System.out.println("NUMBER OF COLUMNS="+td_collection.size());
col_num=1;
HashMap actInfo = new HashMap(); // new hashmap for each line inthe result set
if(!td_collection.isEmpty() && td_collection.size() != 1 ){
for(WebElement tdElement : td_collection)
{
System.out.println("Node Name=== " + tdElement.getAttribute("class"));
System.out.println("Node Value=== " + tdElement.getText());
actInfo.put(tdElement.getAttribute("class"), tdElement.getText());
col_num++;
}
masterMap.add(actInfo);
} // end if
row_num++;
}