如何使用cypress上传svg文件?

时间:2019-07-30 22:29:25

标签: svg types upload blob cypress

我需要使用cypress测试svg文件上传,我在灯具中保存了有效文件,扩展名为.svg

当我将文件更改为svg文件时,我尝试了与普通图像相同的代码,但出现错误

我对图像使用了相同的代码

cy.fixture('images/image.png').as('image')
cy.get('#category-color-image-file').then($input => {
        return Cypress.Blob.base64StringToBlob(this.image,
        'image/png').then(
          blob => {
            const imageFile = new File([blob], 'image.png', { type:
            'image/png' })
            const dataTransfer = new DataTransfer()
            dataTransfer.items.add(imageFile)
            $input[0].files = dataTransfer.files
    }
    )
})


I used it for the svg:


cy.fixture('images/image.svg').as('image')
        cy.get('#category-image-file').then($input => {
        return Cypress.Blob.base64StringToBlob(this.image,
        'image/svg').then(
          blob => {
            const imageFile = new File([blob], 'image.svg', { type:
            'image/png' })
            const dataTransfer = new DataTransfer()
            dataTransfer.items.add(imageFile)
            $input[0].files = dataTransfer.files
            }
            )
        })

虽然我将所有png扩展名都更改为svg,但文件位于相同名称的同一文件夹中。

我也尝试写svg + xml而不是svg 还有svgz。

svg文件的类型是什么,因为我发现了一些其他需要编写类型或内容的代码:

let testFile;       
        cy.fixture('images/image.svg').then((fileContents) => {     
            testFile = new File([fileContents],
            'images/image.svg');
        });     
        cy.get('#category-image-file').trigger('change',
        { testFile});

        cy.get('#category-image-file').then(subject =>
        {
            cy.fixture('images/image.svg')
            .then(()
            )

        })

不幸的是,我仅收到此错误:

InvalidCharacterError:无法在“ Window”上执行“ atob”:要解码的字符串未正确编码。

0 个答案:

没有答案