在WebDriver中验证HTML表数据

时间:2012-01-29 18:06:09

标签: html webdriver selenium-webdriver

任何人都可以解释如何使用WebDriver验证HTML表格中的数据吗?

HTML如下所示..我需要在网页上验证值xyz,abcd,1234,5678

<table>
<tr>
<td>xyz</td>
<td>abcd</td>
</tr>
<tr>
<td>1234</td>
<td>5678</td>
</tr>
</table>

先谢谢!!
MRA。

2 个答案:

答案 0 :(得分:1)

请记住您对问题的摘录:

  

我需要验证网页上的值xyz,abcd,1234,5678

我建议您尝试使用定位器识别这些值,然后断言/验证相同的值。

在这个例子中,我使用XPath(为了清晰起见有点冗长)作为定位策略。希望这有帮助。

    try {
    assertEquals("xyz", driver.findElement(By.xpath("//table//tr[1]/td[1]")).getText());
    } catch (Error e) {
    verificationErrors.append(e.toString());
}
try {
    assertEquals("abcd", driver.findElement(By.xpath("//table//tr[1]/td[2]")).getText());
    } catch (Error e) {
    verificationErrors.append(e.toString());
}
try {
    assertEquals("1234", driver.findElement(By.xpath("//table//tr[2]/td[1]")).getText());
    } catch (Error e) {
    verificationErrors.append(e.toString());
}
try {
    assertEquals("5678", driver.findElement(By.xpath("//table//tr[2]/td[2]")).getText());
    } catch (Error e) {
    verificationErrors.append(e.toString());
}

答案 1 :(得分:0)

您的方法取决于该表是否只包含2行和2列。行和列是否总是以相同的顺序存在?如果没有,则之前的xcode示例提供程序将起作用,否则您可能需要更具创造性。

我之前用过的一种方法是爬行表格。

定义代表您的表格的WebElement。

WebElement yourTable = driver.findElement(By.tagname("table"));

接下来创建一个表示表中每一行的Web元素列表。

List<WebElement> tableRows = yourTable.findElements(By.tagname("tr");

最后,您可以循环遍历表格的行,直到找到要查找的数据。

for(int i=0; i<tableRows.size(); i++){
    WebElement row  = tableRows.get(i);
    now do whatever you want with your WebElement that represents a single row of the table;
    }

希望这有帮助。