了解Cypress 示例:然而,动态测试提供的示例解决了对基本类型 ( string、number) 的静态列表进行迭代的问题,并且未收集 的子类型JQuery<HTMLElement>。
行按标有 GUID 标签的第一列进行分组。下面的代码收集包含特定 GUID 的行标签。添加的测试伪注入it()不起作用,我也不希望它起作用,但这就是我试图用特定 GUID 测试每行状态的方法:
it('TEST Iterate rows matching GUID', () => {
cy.fixture('esign').then($esignStore => {
expect($esignStore).to.have.property('requestUUID').to.be.a('string').not.empty;
cy.get('table[data-qa="act_ops_log_table"]').within(() => {
cy.log('Ops Logs table found');
cy.get('tbody[data-qa="act_ops_log_table_body"]').then(() => {
cy.get('tr');
cy.get('td');
cy.get('td:nth-child(1)').each(($tableCell, $index, $list) => {
const textEnvelope = $tableCell.text();
if (textEnvelope.includes($esignStore.requestUUID)) {
// pseudo-example of dynamically added test: start
// it(`TEST ${$index}`, () => {
cy.get('td:nth-child(3)')
.eq($index)
.then($field => {
const textStatus = $field.text();
expect(textStatus, 'succeeded');
});
// });
// pseudo-example of dynamically added test: end
}
});
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
方法表示赞赏。谢谢
您无法动态创建测试。
Cypress 会解析规范文件,以找出在 Cypress 命令开始运行之前存在哪些测试。
您能做的最好的事情就是添加额外的日志记录来标记每个测试行。
cy.get('tbody tr', {log:false}).each(($tr, index) => {
// Log beginning of row test
cy.then(() => Cypress.log({
displayName: 'Row test',
message: `TEST ${index}`,
}))
cy.wrap($tr, {log:false}).find('td:nth-child(1)', {log:false}).then($firstCol => {
const textEnvelope = $firstCol.text();
if (textEnvelope.includes(esignStore.requestUUID)) {
cy.wrap($firstCol, {log:false}).siblings({log:false}).eq(1, {log:false})
.should('have.text', 'succeed')
} else {
cy.log(`Row ${index} - not required requestUUID`)
}
})
})
Run Code Online (Sandbox Code Playgroud)
或者预先过滤所需的行,以便仅requestUUID测试那些匹配的行
cy.get('tbody tr', {log:false}).each(($tr, index) => {
.filter(`:has(td:nth-child(1):contains(${esignStore.requestUUID}))`, {log:false})
.each(($tr, index) => {
// Log beginning of row test
cy.then(() => Cypress.log({
displayName: 'Row test',
message: `TEST ${index}`,
}))
cy.wrap($tr, {log:false})
.find('td:nth-child(3)', {log:false})
.should('have.text', 'succeed')
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4028 次 |
| 最近记录: |