Нажмите href загружает пустую страницу - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь щелкнуть по этой ссылке, чтобы загрузить файл, и он прекрасно справляется с этой задачей, но щелчок также вызывает загрузку страницы.Страница пуста, а затем по истечении времени загрузки страницы она проходит тест.

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

Есть ли способ щелкнуть ссылку, не вызывая загрузку страницы?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я сделал это, чтобы загрузить файл, и он работает:

cy.get("a")
  .should("have.attr", "href")
  .then(href => {
    cy.request(href).then(response => {
      if (response && response.body) {
        cy.writeFile("filePath", response.body);
      }
    });
  });
0 голосов
/ 25 октября 2018

Существует проблема с JavaScript и ссылками.Обычно:

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

Нажав на ссылку, можно сделать две вещи: загрузить текущую страницу (скажем, index.html) с пустым якорем (index.html#), и выполнить JavaScript,это делает загрузку.

Решение состоит в том, чтобы сказать браузеру не следовать по ссылке.

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

Но если функция занимает много времени, браузер может предварительно загрузить страницу.Что пошло не так, я не знаю, и при тестировании у вас связаны руки.

Альтернатива:

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

Я не делал JavaScript последние два года, поэтому не берите только мое словоза эти неприятности.Я надеюсь, что кто-то другой придумает более обоснованный ответ и лучшее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...