Und*_*ion 5 javascript testing google-chrome download cypress
我进行了以下测试,需要验证单击链接是否可以下载PDF。这一点特别重要,因为我们正在使用Gatsby,而后者又使用Reach Router的链接组件,并且配置错误相对容易,以便路由器接管链接并导航到404页面而不是启动下载。
describe.skip(`Downloads`, () => {
it(`Downloads the expected file`, () => {
cy.visit(pagePath)
cy.getByHref(downloadPath)
.should(`have.attr`, `target`, `_blank`)
.click()
cy.location(`pathname`).should(`eq`, pagePath)
})
})
Run Code Online (Sandbox Code Playgroud)
虽然这并不完美,但它至少会检查单击链接后是否没有导航。
问题在于,当使用cy run进行运行此测试(在Chrome中运行测试)时,由于Chrome的下载对话框,该测试将挂起。
如何防止测试挂起?
请注意,downloadPath解析为静态目录中的pdf,例如/static/example.pdf。没有服务器组件。
还要注意,这是一个不同的问题:我如何使用Cypress.io断言文件下载已经启动而没有实际下载?
实际上我搜索了很多,发现安装了浏览器扩展后不可能在无头模式下运行测试,因为无头模式下唯一支持的浏览器是 Electron,而 Electron 不支持文档中所述的扩展。
尚不支持运行无头 Chrome。请参阅此问题:#488 https://github.com/cypress-io/cypress/issues/488
这是一个不太老的问题,2019 年 2 月就被标记了
https://github.com/cypress-io/cypress/issues/832 https://github.com/cypress-io/cypress/issues/1235
| 归档时间: |
|
| 查看次数: |
2358 次 |
| 最近记录: |