【问题标题】:Click href loads blank page点击href加载空白页
【发布时间】:2018-10-25 14:55:06
【问题描述】:

我正在尝试单击此 href 以下载文件,并且效果很好,但单击也会触发要加载的页面。该页面是空白的,然后在页面加载超时后,它会破坏测试。

cy.get(the href).click();

有没有办法在不触发页面加载的情况下点击href?

【问题讨论】:

  • 请提供您所引用内容的代码 sn-p。如果我们看不到,我们只能推测您的问题是什么。
  • 手动测试也会出现这种情况吗?我想我要问的是,如果您自己用鼠标单击它会加载页面还是仅在柏树中发生?
  • @Maccurt 不,href 不会加载新页面,它只是下载文件

标签: cypress


【解决方案1】:

我这样做是为了下载文件并且它正在工作:

cy.get("a")
  .should("have.attr", "href")
  .then(href => {
    cy.request(href).then(response => {
      if (response && response.body) {
        cy.writeFile("filePath", response.body);
      }
    });
  });

【讨论】:

    【解决方案2】:

    javascript 和链接存在问题。通常:

    <a href="#" onclick="f()">hit me</a>
    

    点击链接可以做两件事:用空锚 (index.html#) 加载当前页面(比如 index.html),执行 javascript,然后下载。 p>

    解决方案是告诉浏览器不要点击链接。

    function f() {
        ...
        return false;
    }
    

    但如果该功能需要很长时间,浏览器可能会预加载页面。 出了什么问题我不知道,在测试你的手被束缚了。

    替代方案:

    <a href="javascript:f()">hit me</a>
    

    过去两年我没有使用 JavaScript,所以对于这些麻烦不要只信我的话。我希望其他人提出一个更有根据的答案和更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 2011-08-11
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 2022-01-20
      • 2014-10-22
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多