任何人都可以解释如何使用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。
答案 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;
}
希望这有帮助。