量角器:如何从多行的多个单元格中检索数据?
Protractor: How do you retrieve data from multiple cells from multiple rows?
我正在尝试获取数据并从多行的多个单元格断言它。
我有一个 table,有 10 行,每行有 13 个单元格。我只需要从单元格 1、2、3 和 5 获取值和断言。
这是我的代码:
let rows = element.all(by.tagName('tr'));
let data = rows.map((row) => {
let cells = row.all(by.tagName('td'));
return {
position: cells.get(1).getText(),
category: cells.get(2).getText(),
value: cells.get(3).getText(),
points: cells.get(5).getText()
}
})
expect(data).to.deep.equal([
{position: "1", category: "test1", value: "11", points: "3"},
{position: "2", category: "test2", value: "12", points: "5"},
{position: "3", category: "test3", value: "13", points: "3"},
{position: "4", category: "test4", value: "14", points: "5"},
{position: "5", category: "test5", value: "15", points: "3"},
{position: "6", category: "test6", value: "16", points: "5"},
{position: "7", category: "test7", value: "17", points: "3"},
{position: "8", category: "test8", value: "18", points: "5"},
{position: "9", category: "test9", value: "19", points: "3"},
{position: "10", category: "test10", value: "20", points: "5"}
]);
我该如何解决这个问题?目前我收到此错误:
AssertionError: expected { Object (flow_, stack_, ...) } to deeply equal [ Array(10) ]
为什么你不只使用 expect([]).toEqual([])
如果您对对象有疑问,请尝试使用 stringify。
expect(JSON.stringify(data)).toEqual('[{"....."}]');
或
expect(JSON.stringify(data)).toMatch('[{"....."}]');
我正在尝试获取数据并从多行的多个单元格断言它。
我有一个 table,有 10 行,每行有 13 个单元格。我只需要从单元格 1、2、3 和 5 获取值和断言。
这是我的代码:
let rows = element.all(by.tagName('tr'));
let data = rows.map((row) => {
let cells = row.all(by.tagName('td'));
return {
position: cells.get(1).getText(),
category: cells.get(2).getText(),
value: cells.get(3).getText(),
points: cells.get(5).getText()
}
})
expect(data).to.deep.equal([
{position: "1", category: "test1", value: "11", points: "3"},
{position: "2", category: "test2", value: "12", points: "5"},
{position: "3", category: "test3", value: "13", points: "3"},
{position: "4", category: "test4", value: "14", points: "5"},
{position: "5", category: "test5", value: "15", points: "3"},
{position: "6", category: "test6", value: "16", points: "5"},
{position: "7", category: "test7", value: "17", points: "3"},
{position: "8", category: "test8", value: "18", points: "5"},
{position: "9", category: "test9", value: "19", points: "3"},
{position: "10", category: "test10", value: "20", points: "5"}
]);
我该如何解决这个问题?目前我收到此错误:
AssertionError: expected { Object (flow_, stack_, ...) } to deeply equal [ Array(10) ]
为什么你不只使用 expect([]).toEqual([])
如果您对对象有疑问,请尝试使用 stringify。
expect(JSON.stringify(data)).toEqual('[{"....."}]');
或
expect(JSON.stringify(data)).toMatch('[{"....."}]');