cypress - 获取 return of chain 方法与页面对象
cypress - get return of chain method with page objects
我用一些链方法实现了页面对象。
页面看起来像这样
class Table {
getTable() {
return cy.get('table#tblItem');
}
getListRow() {
return this.getTable()
.within(($tbl) => {
cy.get('tbody').scrollTo('bottom', { ensureScrollable: false, duration: 1000 });
return cy.wrap($tbl).find('tbody#itemBody tr');
});
}
}
并且在 cypress 规范文件中,我进行断言以验证行列表是否包含项目
Table.getListRow()
.then((lstRowItem) => {
expect(lstRowItem).have.length.greaterThan(1);
})
但我总是得到方法 'getTable()' 的结果,而不是 'getListRow()'。测试失败,因为它获得了 table.
的值 1
我怎样才能正确地return这个链式方法。
谢谢
.within()
命令不允许返回内部值。
改用 .then()
和 .find()
。
getListRow() {
return this.getTable()
.then($tbl => {
return cy.wrap($tbl).find('tbody')
.scrollTo('bottom', { ensureScrollable: false, duration: 1000 })
.then(() => {
return cy.wrap($tbl).find('tbody#itemBody tr');
});
})
参考:.within()
.within() yields the same subject it was given from the previous command.
我用一些链方法实现了页面对象。
页面看起来像这样
class Table {
getTable() {
return cy.get('table#tblItem');
}
getListRow() {
return this.getTable()
.within(($tbl) => {
cy.get('tbody').scrollTo('bottom', { ensureScrollable: false, duration: 1000 });
return cy.wrap($tbl).find('tbody#itemBody tr');
});
}
}
并且在 cypress 规范文件中,我进行断言以验证行列表是否包含项目
Table.getListRow()
.then((lstRowItem) => {
expect(lstRowItem).have.length.greaterThan(1);
})
但我总是得到方法 'getTable()' 的结果,而不是 'getListRow()'。测试失败,因为它获得了 table.
的值 1我怎样才能正确地return这个链式方法。
谢谢
.within()
命令不允许返回内部值。
改用 .then()
和 .find()
。
getListRow() {
return this.getTable()
.then($tbl => {
return cy.wrap($tbl).find('tbody')
.scrollTo('bottom', { ensureScrollable: false, duration: 1000 })
.then(() => {
return cy.wrap($tbl).find('tbody#itemBody tr');
});
})
参考:.within()
.within() yields the same subject it was given from the previous command.