Cypress: How to show a PDF and continue the test?

问题描述 投票:0回答:0
首先:

    这是关于解析PDF的
  • this是关于构建网页以显示PDF的。 (现在我在标题中添加了“柏树”。希望这有点有帮助。) 在柏树测试期间,这大约是pdf,仅用于视觉反馈。因此,请停止关闭请求并实际开始阅读。 我正在测试一个在某个时候产生PDF的Web应用程序。我知道赛普拉斯与PDF并不多,但是您可以做cy.request(x).then(pdfContent =>
  • 然后检查内容(例如,使用某些PDF库,例如PDFJS-DIST)。但是请记住,解析是这个问题是什么。
  • 当PDF的检查发生时,我希望用户在浏览器中实际上查看pdf(既在open模式下,也适用于错误屏幕截图和视频中)。因此,如果测试例如在第一页上找不到某个字符串,用户可以在某种程度上进行某种视觉验证。
  • 现在问题是:

如果我实际上是pdf,我会遇到一个错误,因为赛普拉斯期望run

而不是。

如果我在链接上让柏树

cy.visit
显示PDF,但是我遇到了一个错误,我猜是因为PDF的加载不会触发某些事件,例如网页。我试图像以下代码那样通过捕获的错误欺骗。我可以看到content-type: 'text/html'匹配(因为在测试过程中看起来有所不同,并且测试也获得了绿色✓),但是错误仍然停止了测试(也可以将其表示为

docs

):

application/pdf

    我怎么能做得更好?
  • Edit:
    ,根据要求,有关包含链接的页面的一些详细信息。它由MailDev生成,并包含一个简单的链接:
    click
  • 这是柏树从目标中删除“ _blank”之后显示的方式(请参见上面的代码)。我看不出这可能有所帮助,但是谁知道。再次:这与解析无关。解析效果很好(只要我不尝试在解析PDF时显示)。
  • 我举办了您给的示例:
    Timed out
    against非常简单的pdf来自WC3,它打开了。 
    page load
    部分打开一个新选项卡,但是如果要在同一选项卡中打开,则可以通过删除目标属性来完成。
    
    on("fail"

pdf本身正在引起问题,或者网页上还有更多可重复的示例所需的网页。
我的应用程序和pdf都是

let pdfUrl = "" cy.get(pdfSelector).as("pdfLink").invoke("attr", "target", "").invoke("attr", "href").then((href) => { pdfUrl = href }).then(() => { Cypress.config("pageLoadTimeout", 500) Cypress.on("fail", () => { cy.request(pdfUrl).then(pdfContent => cy.log("FIXME never happens")) }) cy.get("@pdfLink").click() cy.request(pdfUrl).then(pdfContent => cy.log("FIXME never happens")) }) 域 - 如果域不同,您可能需要一个原始命令。 enter image description here

cypress
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.