Cypress 文件上传 (image/jpeg)

Cypress file upload (image/jpeg)

我正在尝试在 cypress 中上传 jpeg 文件。我不太熟悉这是如何完成的。

我有以下代码:


cy.fixture(filename).then(fileContent =>
 {
cy.get('#file').upload({ fileContent, filename, mimeType: 'image/JPEG', })
     { subjectType: 'input' }
    })

这是我遇到的错误:

给定文件中的一个或多个字段无效。 请查看文档以找到支持的 "fileOrArray" 值

我猜您正在使用此插件 cypress-file-upload 进行上传。这是它的 api 合同

interface FileData {
    fileContent: string;
    fileName: string;
    mimeType: string;
    encoding?: Cypress.Encodings;
  }
    upload(fileOrArray: FileData | FileData[], processingOpts?: FileProcessingOptions): Chainable<Subject>;

您输入错误,应该是 fileName,而不是 filename

通过cypress-file-upload上传图片效果很好。只需将图像转换为 Blob。

const fileName= 'logo.jpeg'
        cy.fixture('logo.jpeg')
        .then(Cypress.Blob.base64StringToBlob)
        .then((fileContent) => {
        cy.get('#new_ad > div:nth-child(19) > div').attachFile(
          {fileContent, fileName, mimeType: 'image/**'},{subjectType: 'drag-n-drop'})
        })