testing - 当页面对象中声明的断言在 TestCafe 的同一测试中被调用两次时,DOM 快照警告
问题描述
我在页面对象中声明了异步函数,该函数定义了几个断言来验证页面上是否存在元素,我必须在同一个测试中调用此函数两次,但我收到警告 - “您将 DOM 快照属性传递给断言't.expect()' 方法“即使我没有在 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');
}
解决方案
不幸的是,没有官方方法可以禁用这些警告。我们知道这个错误。您可以在此 GitHub 线程中跟踪我们的进度。
作为临时解决方法,您可以.expect
按如下方式重写您的调用:
.expect(
this.table.visible
)
推荐阅读
- react-router - React Router 如何拥有带参数的父路由和子路由
- observable - 根据获取的 url 返回数据
- php - Xero API 时间表
- excel - MsgBox 使用 If answer = Yes/No/Cancel 出现两次
- apache-beam - apache beam:在管道处理期间访问指标
- typescript - 打字稿:重载事件处理程序
- python - Jupyter / IPython Notebook 文本编辑作为降价
- javascript - 如果不在缓存中,则 JS 新图像
- android - JSON模型中的双重和布尔属性问题
- ruby-on-rails - 模型订单的未定义方法“aasm_state”您是说什么?aasm_state=