在使用cypress 上传文件时,上传正常,但是,pdf一直空白的,翻边了资料也没找到原因。最后在一个不起眼的地方发现了问题所在。
错误的代码:
cy.fixture('CBKS.pdf').as('uploadFile')
cy.get('.el-upload-dragger').selectFile('@uploadFile', {action: 'drag-drop'})
正确的代码:
cy.fixture('CBKS.pdf', null).as('uploadFile')
cy.get('.el-upload-dragger').selectFile('@uploadFile', {action: 'drag-drop'})
问题就出在了 cy.fixture 的第二个参数,这玩意当上传的是pdf 时,必须传入 null。官方说明,对于以下类型,会自动识别encoding,其他的需要自己设置类型,不然会有错误。
.json
.js
.coffee
.html
.txt
.csv
.png
.jpg
.jpeg
.gif
.tif
.tiff
.zip
官方解释:utf8 对于其他类型的文件,除非在 的第二个参数中指定,否则将默认读取它们cy.fixture()。您可以指定 null 编码以便将文件作为 Cypress.Buffer实例读取。