Testing 在TestCafe的同一测试中调用页面对象中声明的断言两次时,DOM快照警告

Testing 在TestCafe的同一测试中调用页面对象中声明的断言两次时,DOM快照警告,testing,automated-tests,ui-automation,e2e-testing,testcafe,Testing,Automated Tests,Ui Automation,E2e Testing,Testcafe,我在page对象中声明了async函数,该函数定义了几个断言来验证页面上是否存在元素,我必须在同一测试中调用此函数两次,但我收到警告-“您将DOM快照属性传递给了断言的't.expect()'方法”即使我没有在t.expect()中使用wait关键字 请让我知道如何摆脱这个警告 fixture('Assertions in Page Object test suite').beforeEach(async t => { await t.useRole(login); }); test

我在page对象中声明了async函数,该函数定义了几个断言来验证页面上是否存在元素,我必须在同一测试中调用此函数两次,但我收到警告-“您将DOM快照属性传递给了断言的't.expect()'方法”即使我没有在t.expect()中使用wait关键字

请让我知道如何摆脱这个警告

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);
});
页面对象方法是:

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');
}

不幸的是,没有官方的方法来禁用这些警告。我们知道这个错误。你可以跟踪我们在这方面的进展

作为一种临时解决方法,您可以重写
。预期调用如下所示:

.expect(
    this.table.visible
)

首先,我要考虑一下建筑。在页面对象类中使用断言将导致以后的混乱。断言属于测试,而不是POM类。想想当有人看你的测试时。。。他们看不到您正在测试的内容,他们实际上必须进入另一个文件(您的POM类所在的位置)并查看一下。我有一个要求,因为类似的表显示在多个选项卡中,如果我只在测试中编写断言,那么这将是一个重复,所以我在页面对象类中创建了methid。