我正在使用Cypress开发一种测试工具,用于当前处于活动状态的网页。问题是有时我会得到一个模态,显示新功能,事件等。这会破坏其余的测试。
我已经尝试过在登录后立即关闭模式(这是以前的测试之一),但是这导致登录测试失败。我想知道是否有一种方法可以使测试忽略下面代码中的最后2条指令,无论它们是否可见。
it('Visits habitica and logins correctly', function () {
cy.visit('https://habitica.com/login')
cy.get('form').find('input[id="usernameInput"]').click().type("username")
cy.get('form').find('input[id="passwordInput"]').click().type("password")
cy.get('.btn-info').click()
cy.get('.modal-dialog').find('button[class="btn btn-warning"]').click()
cy.get('.start-day').find('button').click({force:true})
})
答案 0 :(得分:0)
是浏览器模式还是您的团队开发的模式?在第一种情况下,赛普拉斯应自动接受模态。在第二种情况下,您可以通过仅在可见时接受它来解决它。您可以通过将其添加到脚本中来实现:
cy.get('body').then($body => {
if ($body.find('IDENTIFIER_FOR_THE_MODAL').length === 1) {
cy.get('IDENTIFIER_TO_CLOSE_THE_MODAL')
.click()
}
})
它在主体内搜索模态(当然,您必须将IDENTIFIER_FOR_THE_MODAL
更改为正确的标识符)。如果确实找到模态,脚本将搜索IDENTIFIER_TO_CLOSE_THE_MODAL以关闭模态并单击。
可能的情况下,关闭模式的动作必须与您的情况稍有不同,但是语法会起作用。