我想通过一个表并迭代表中的所有行,并希望检查特定列数据的验证,比如哪个日期是过去日期需要识别的。
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,但这是正确的。我是硒测试的新手。请帮助获取数据。
答案 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"));