点击下载按钮后等待页面加载

jak*_*kub 2 testing automated-tests cypress

在赛普拉斯测试单击()下载按钮后,可以以某种方式跳过等待页面加载,该按钮开始下载但不会重定向到其他页面?

it('name of the test', () =>{
        cy.get('#btnGeneratePdf').click()
        .url().should('contain', "/Closed"); //url is same as before than button for download was clicked

})
Run Code Online (Sandbox Code Playgroud)

小智 5

这是一个已知的赛普拉斯问题。许多相关问题已在Cypress github上公开,但是您可以关注本期的主要讨论。

现在,您无法在单击锚点后跳过 Cypress waiting for load,但有一个解决方法 - 您可以在文件下载后强制页面重新加载,以使测试不会失败。您可以调整 5 秒的超时时间,以确保在页面重新加载之前下载文件。

cy.window().document().then(function (doc) {
  doc.addEventListener('click', () => {
    // this adds a listener that reloads your page 
    // after 5 seconds from clicking the download button
    setTimeout(function () { doc.location.reload() }, 5000)
  })
  cy.get('#btnGeneratePdf').click()
})
Run Code Online (Sandbox Code Playgroud)

这个问题已经存在很长时间了。希望 Cypress 团队能够尽快解决这个问题。