单击 href 加载空白页

Click href loads blank page

我正在尝试单击此 href 来下载文件,它确实可以正常工作,但单击也会触发页面加载。该页面为空白,然后在页面加载超时后,它中断了测试。

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

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

javascript 和 link 存在问题。通常:

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

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

解决方案是告诉浏览器不要遵循 link。

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

但如果函数运行时间较长,浏览器可能会预加载页面。 我不知道哪里出了问题,测试你的手被束缚了。

选择:

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

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

我这样做是为了下载文件,它正在运行:

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