通过表格迭代进行硒测​​试

时间:2017-12-06 18:53:45

标签: selenium testing cucumber

我想通过一个表并迭代表中的所有行,并希望检查特定列数据的验证,比如哪个日期是过去日期需要识别的。

WebElement tableElement = webDriver.findElement(By.xpath("//[@id='tableID']/tbody/tr"));
    String rowElement = null;

    for(int i = 0; i < 9 ; i ++){
        rowElement = tableElement.findElement(By.xpath("//*[@id='column" + i + "']/td[3]")).getText();
        System.out.println(rowElement.toString());
    }

我遇到错误 - &gt;

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='tableID']/tbody/tr"}

虽然我仔细检查了表格ID,但这是正确的。我是硒测试的新手。请帮助获取数据。

2 个答案:

答案 0 :(得分:0)

我没有对代码进行过测试,但下面是我对原帖的评论中提到的更正:

let employeeData = [
  [
    ['firstName', 'Bob'], ['lastName', 'Lob'], ['age', 22], ['role', 'salesperson']
  ],
  [
    ['firstName', 'Mary'], ['lastName', 'Joe'], ['age', 32], ['role', 'director']
  ]
];

let result = employeeData.map(sub => sub.reduce((obj, pair) => (obj[pair[0]] = pair[1], obj), {}));

console.log(result);

虽然我认为最好创建一个表记录数组:

WebElement tableElement = webDriver.findElement(By.xpath("//*[@id='tableID']/tbody/tr"));
    String rowElement = null;

    for(int i = 0; i < 9 ; i ++){
        rowElement = tableElement.findElement(By.xpath("//*[@id='column" + i + "']/td[3]")).getText();
        System.out.println(rowElement.toString());
    }

以上也是“空气代码”而未经过测试,可能包含拼写错误,将其视为更多的伪代码。

答案 1 :(得分:0)

尝试使用ID而不是xpath来查找表。

WebElement tableElement = webDriver.findElement(By.id("tableId"));