问题描述
我已经在页面对象中声明了异步函数,该对象没有定义一些断言来验证页面上元素的存在,并且我必须在同一测试中两次调用此函数,但是我得到警告-“ 断言的“ t.expect()”方法的DOM快照属性”,即使我没有在t.expect()中使用await关键字。
请让我知道如何消除此警告。
fixture('Assertions in Page Object test suite').beforeEach(async t => {
await t.useRole(login);
});
test('Validate UI for sample page,async t => {
await pageObject.validateTableUI(t);
await t.click(pageObject.changeTab);
await pageObject.validateTableUI(t);
});
Page对象的方法是:
export default class SamplePage {
constructor() {
this.table = Selector('table');
this.tableHeaders = Selector('table thead th);
this.changeTab = Selector('tab);
}
async validateTableUI(t){
await t
.expect(this.table.visible)
.ok()
.expect(this.tableHeaders.visible)
.ok()
.expect(this.tableHeaders.nth(1).textContent)
.contains('Column 1')
.expect(this.tableHeaders.nth(2).textContent)
.contains('Column 1');
}
解决方法
不幸的是,没有官方的方法可以禁用这些警告。我们知道此错误。您可以在this GitHub thread中跟踪我们的进度。
作为一种临时解决方法,您可以按以下方式重写.expect
调用:
.expect(
this.table.visible
)