You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Cypress无法访问shadow host内PDF viewer的original-url属性怎么办

修正后可运行代码

context('Test',{ includeShadowDom: true }, () => {
    before(() => {
        cy.login();
    });

    it('downloads the generated pdf form', { includeShadowDom: true }, () => {
        cy.get('.viewer')
          .shadow()
          .find('embed#plugin', { timeout: 10000 })
          .should('be.visible')
          .invoke('attr', 'original-url')
          .then(pdfUrl => {
              cy.downloadFile(pdfUrl, '/genPdfs/', 'genPdf.pdf')
          })
    })
})

核心修改说明

  • 原find('original-url')逻辑错误:original-url是<embed>元素的属性,不是标签名,需要先定位到id为plugin的embed元素才能获取对应属性
  • 原$pdfDest.text()用法错误:元素自定义属性不能通过text()读取,需要用attr('original-url')方法获取
  • 原genPdf.pdf未加引号:会被JS识别为未定义变量,作为文件名需要包裹为字符串格式
  • 新增超时和可见性校验:适配模态框加载延迟,避免元素未渲染完成就触发查找逻辑,解决找不到元素的报错

参考截图

  • 页面审查结果:
    页面审查结果
  • Cypress报错示例:
    Cypress报错示例
  • 使用#选择器时的同类报错:
    使用#选择器的同类报错

内容的提问来源于stack exchange,提问作者Rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:45:03