Не удается загрузить изображение PNG (логотип) с помощью Cypress - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь загрузить файл png с помощью Cypress, и это то, что я пытался до сих пор

Cypress.Commands.add('upload_file', (fileName, selector) => {
  return cy.get(selector).then(subject => {
    return cy.fixture(fileName, 'base64')
      .then(Cypress.Blob.base64StringToBlob)
      .then(blob => {
        const el = subject[0]
        const testFile = new File([blob], fileName, { type: 'image/png' })
        const dataTransfer = new DataTransfer()
        dataTransfer.items.add(testFile)
        el.files = dataTransfer.files
        return subject;
      })
  })
})

, вызывая это в моем тесте, как показано ниже:

 cy.upload_file("logo.png", ".jss378");

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

Вот мой HTML-код: введите описание изображения здесь

1 Ответ

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

Получил работу с помощью плагина загрузки Cypress

вот шаги:

1) добавление следующего в command.js:

import 'cypress-file-upload';

2)и используя это в тесте:

// uploading the brand logo
    const fileName = 'logo.png';

cy.fixture(fileName).then(fileContent => {
  cy.get('[title="Logo"]').upload(
    { fileContent, fileName, mimeType: 'image/png' },
    { subjectType: 'drag-n-drop' },
  );
});

документация: https://docs.cypress.io/plugins/index.html#content

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