#typescript #cypress
#typescript #cypress
Вопрос:
Я пытаюсь загрузить файл 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:
Заставил его работать с помощью плагина загрузки 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