Javascript 使用Cypress删除某些元素后单击

Javascript 使用Cypress删除某些元素后单击,javascript,cypress,Javascript,Cypress,我现在正在测试一个网站,其中为用户加载任务,但他们需要一定的时间才能加载。起初,它们会显示出来,但带有灰色覆盖层。我们有三种类型的任务,但它们在类名的末尾都有扩展名“-grey” 最后,我的问题是,如何确保Cypress仅在从类名中删除“-grey”后才单击 加载TAK时的类名为:class=“任务图标任务图标-条件”或尚未完全加载时的类名class=“任务图标任务图标-条件灰色” 我现在掌握的代码是: Given('I click the task {string}', (task:

我现在正在测试一个网站,其中为用户加载任务,但他们需要一定的时间才能加载。起初,它们会显示出来,但带有灰色覆盖层。我们有三种类型的任务,但它们在类名的末尾都有扩展名“-grey”

最后,我的问题是,如何确保Cypress仅在从类名中删除“-grey”后才单击

加载TAK时的类名为:
class=“任务图标任务图标-条件”
或尚未完全加载时的类名
class=“任务图标任务图标-条件灰色”

我现在掌握的代码是:

    Given('I click the task {string}',  (task: string) => {
    cy.get('*[class$=-grey]').not('be.visible', {timeout: 4500});
    cy.contains(task,{ matchCase: false, timeout: 45000})
        .click({force: true}); 
});
.should('not.be.visible');将等待灰色不可见4秒:

Given('I click the task {string}',  (task: string) => {
    cy.get('*[class$=-grey]', {timeout: 4500}).should('not.be.visible');
    cy.contains(task,{ matchCase: false, timeout: 45000}).click({force: true}); 
});
.should('not.be.visible');将等待灰色不可见4秒:

Given('I click the task {string}',  (task: string) => {
    cy.get('*[class$=-grey]', {timeout: 4500}).should('not.be.visible');
    cy.contains(task,{ matchCase: false, timeout: 45000}).click({force: true}); 
});

花了我一段时间,但我找到了。我们使用了if语句来检查'-grey'类名是否仍在使用,如果仍在使用,请稍候,否则继续:

Given('I click the task {string}',  (task: string) => {
cy.get('.tasktable-wrapper').then((elem)=> {
    if(elem.find('*[class$="task-icon--form-grey"]').length > 0 ||
        elem.find('*[class$="task-icon--condition-grey"]').length > 0) {
        cy.wait(1000);
    }
})
cy.contains(task,{ matchCase: false, timeout: 45000})
    .click();

}))

花了我一段时间,但我找到了。我们使用了if语句来检查'-grey'类名是否仍在使用,如果仍在使用,请稍候,否则继续:

Given('I click the task {string}',  (task: string) => {
cy.get('.tasktable-wrapper').then((elem)=> {
    if(elem.find('*[class$="task-icon--form-grey"]').length > 0 ||
        elem.find('*[class$="task-icon--condition-grey"]').length > 0) {
        cy.wait(1000);
    }
})
cy.contains(task,{ matchCase: false, timeout: 45000})
    .click();

}))

感谢您提供的解决方案,但我仍然收到一个错误:
在4500ms后重试超时:应查找元素:[class$=-grey],但从未找到它。
感谢您提供的解决方案,但我仍然收到一个错误:
在4500ms后重试超时:应查找元素:[class$=-grey],但从未找到它。