CypressError:重试超时

CypressError:重试超时

当前行为:

我的代码中出现了上述错误,访问网页并检查它是否包含正确的 URL。

此逻辑适用于网页内的其他链接。

describe('Sectors Tab', function () {
    it('finds Software Development', function () {
        cy.visit('http://www.afd.co.uk/')
        cy.contains('Sectors')
            .click({force: true})
        cy.contains('Software Development')
            .click({force: true})
        cy.url()
            .should('include', '/sectors/software-development/')
    })

期望的行为:

它应该返回一个有效的响应,表明它已通过测试。

就像它对我的其他测试所做的那样:

it('finds Banking and Finance', function () {
    cy.visit('http://www.afd.co.uk/')
    cy.contains('Sectors')
        .click({force: true})
    cy.contains('Banking and Finance')
        .click({force: true})
    cy.url()
        .should('include', '/sectors/banks-and-finance/')
})

上述测试的图片

错误图像

重现步骤:(应用程序代码和测试代码)

有关测试代码的信息请参见上文。

版本

Chrome:76
赛普拉斯:3.4.1

我已经在 GitHub 上报告了这个问题,他们已经关闭了该问题,因为这不是 Cypress 本身的问题。

该成员回复如下:

正如错误所示,该 URL 不包含该/sectors/banks-and-finance/部分。

您可以在通过的测试中看到,页面导航到/sectors/banks-and-finance/已记录 (NEW URL) 的 URL - 在失败的测试用例中,这并未记录 - URL 从未改变。

Cypress 在这种情况下显示正确的错误。为什么您的网站无法导航?是因为 Cypress 中的错误导致无法导航吗?如果没有完全可重现的示例可供运行,我根本不知道答案。

参考:https://github.com/cypress-io/cypress/issues/5069

因此,我不知道还能尝试什么。我也没有例子可以给出,因为这是一个易于访问的网页,并且提供了代码。

答案1

更新: 查看网站时,我发现网页上有多个元素包含子字符串“软件开发”。Cypress 查找并单击它找到的第一个元素,但这可能不是您想要的元素。

由于该元素没有 id 或任何其他唯一属性,因此我将执行以下操作:

cy.get('.footer-menu-level-2').eq(1).contains('Software Development').click();

显然,如果您可以要求开发人员添加一个唯一属性,那就更好了。

原始答案:

您是否尝试过手动执行相同操作时查看 URL 是否会发生变化?听起来这像是 SUT 中的一个错误...

相关内容