如何在Cypress中处理Exceptions,与我们在selenium中的处理方式类似。

在selenium中,我们可以处理异常。如果在任何测试用例中出现任何异常,它将跳转到下一个测试用例,我们可以在selenium中做到这一点。但是我很困惑,我们如何在Cypress中做到这一点。以下面的例子为例

 it('Test Case 1', 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})
    })

 it('Test Case 2', 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})
    })

假设浏览器在测试案例1中找不到点击元素(粗体),那么它将跳转到测试案例2。

我们如何在Cypress中做到这一点?

请帮我解决这个问题

Unable to fine element等异常或类似的其他异常。

除了这个例子之外,我们如何处理异常或错误。

解决方案:

虽然Cypress团队说我们需要尽可能的避免条件测试(也许需要改变你的方法)。但是,在你的情况下,你可以包含一个条件测试。

cy.get('.btn-info').then((body) => {
 if (body.length > 0) { // continues if the element exists
    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})
 } // if the above condition is not met, then it skips this the commands and moves to the next test
});

给TA打赏
共{{data.count}}人
人已打赏
解决方案

RefreshIndicator与NestedScrollview。

2022-5-14 10:00:35

解决方案

循环生成空列表

2022-5-14 10:00:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索