转自:http://www.51testing.com/html/27/n-218927.html   作者:小刀   来源:51Testing软件测试博客

 

 通常页面上需要验证一个table里头的值对不对,这个table一般都没有id,所以可以用xpath来解决。

  第一步:识别该table 的某个cell。这里要注意通常一个table的第一行是表头,第二行才是具体的值,selenium识别行列从1开始数的,不是0.所以一个table的第1行第1列的值应该是:

  //table[@class='myTable']/tbody/tr[2]/td[1]

  第二步:加入验证点。

  首先要考虑这个table是不是存在,不存在就直接assertExist返回。

  然后考虑这个table是不是会返回很多行,如果需要验证每一个表格的内容,则用循环来控制:

 

String table = "//div/table[@class='main-table']/tbody/tr";
String tr = "//div/table[@class='main-table']/thead/tr/th";

int rowNumber = selenium.getXpathCount(table).intValue();
int lineNumber = selenium.getXpathCount(tr).intValue();

for (int i = 1; i <= rowNumber; i++) {
for (int j = 1; j <= lineNumber; j++) {
String path = table + "[" + i + "]/td[" + j + "]";
if (selenium.isElementPresent(path)) {
String data = selenium.getText(path);
assertNotNull(data);
}
}
}

 

  第三步:如果是验证table的某列含有某个值:

 

selenium.isElementPresent("//td[contains(text(),'my required text for verifying')]")

 

  也可以用:selenium.getText(path)得到那一列的值再判断:

 

boolean exist = data.contains(myexpectData);
assertEquals(exist, true);