我正在为 Web 应用程序开发自动化框架。它基于赛普拉斯。 在其中一个应用程序页面上,我必须下载一个动态生成的 PDF 文件并分析其内容。 PDF 文件的 URL 是一个看起来像 blob:https://.... 的 blob URL。当我点击链接时,它只是在新的浏览器选项卡中打开它。由于它是赛普拉斯,我无法使用新窗口。当我尝试使用我收到的 blob URL 调用 cy.visit 时:
错误:无效协议:blob:
我知道 Cypress 中的 Blob 库,但我很难从文档中理解如何在我的案例中使用它。
我想你可以使用
cy.request()
来获取pdf内容
cy.get(pdf-link-element)
.invoke('attr', 'href')
.then(href => {
cy.request(href).then(pdfContent => {
...
})
})
这会让你绕开窗户,但下一个问题是如何使用
pdfContent
这会有点原始。
也许
cy.writeFile()
它到/cypress/downloads
并使用pdf解析库来获得有用的东西来测试。