Как проверить загрузку файла с помощью Cypress при запуске в Chrome - PullRequest
2 голосов
/ 24 апреля 2019

У меня есть следующий тест, который должен проверить, что нажатие на ссылку загружает PDF.Это особенно важно, так как мы используем Gatsby, который, в свою очередь, использует компонент связи Reach Router, и относительно легко неверно сконфигурировать вещи, чтобы маршрутизатор перехватил ссылку и перешел на страницу 404 вместо начала загрузки.

describe.skip(`Downloads`, () => {
  it(`Downloads the expected file`, () => {
    cy.visit(pagePath)
    cy.getByHref(downloadPath)
      .should(`have.attr`, `target`, `_blank`)
      .click()
    cy.location(`pathname`).should(`eq`, pagePath)
  })
})

Хотя это и не идеально, он, по крайней мере, проверяет отсутствие навигации в результате нажатия на ссылку.

Проблема в том, что при запуске этого теста с использованием cy run, который запускает тесты в Chrome, тест зависает из-за диалога загрузки Chrome.

Как можно предотвратитьпроверить на зависание?

Обратите внимание, что downloadPath преобразуется в pdf в статическом каталоге, например, /static/example.pdf.Серверный компонент отсутствует.

Также обратите внимание, что этот вопрос отличается от: Как я могу использовать Cypress.io, чтобы утверждать, что загрузка файла была начата без фактической загрузки?

1 Ответ

0 голосов
/ 28 апреля 2019

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

Запуск безголового Chrome пока не поддерживается. Смотрите эту проблему: # 488 https://github.com/cypress-io/cypress/issues/488

И это уже не старая проблема, помеченная в феврале 2019 года

https://github.com/cypress-io/cypress/issues/832 https://github.com/cypress-io/cypress/issues/1235

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