我需要使用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”:要解码的字符串未正确编码。