Skip to main content
Cypress应用

Cypress.Blob

Cypress 自动包含一个 Blob 库并将其暴露为 Cypress.Blob

使用 Cypress.Blobbase64 字符串转换为 Blob 对象。适用于测试上传功能。

语法

Cypress.Blob.method()

用法

正确用法

Cypress.Blob.method()

错误用法

cy.Blob.method() // 错误,不能链式调用 'cy'

示例

图片夹具

使用图片夹具进行 jQuery 插件上传

// 以编程方式上传 logo
cy.fixture('images/logo.png').as('logo')
cy.get('input[type=file]').then(function ($input) {
// 将 logo 的 base64 字符串转换为 blob
const blob = Cypress.Blob.base64StringToBlob(this.logo, 'image/png')

// 将 blob 传递给 fileupload jQuery 插件
// https://github.com/blueimp/jQuery-File-Upload
// 在应用程序代码中使用
// 这会触发编程式上传
$input.fileupload('add', { files: blob })
})

获取 dataUrl 字符串

创建 img 元素并将其 src 设置为 dataUrl

return Cypress.Blob.imgSrcToDataURL('/assets/img/logo.png').then((dataUrl) => {
const img = Cypress.$('<img />', { src: dataUrl })

cy.get('.utility-blob').then(($div) => {
// 添加图片
$div.append(img)
})
cy.get('.utility-blob img').click().should('have.attr', 'src', dataUrl)
})

历史版本

版本变更内容
5.0.0arrayBufferToBlobbase64StringToBlobbinaryStringToBlobdataURLToBlob 方法的返回类型从 Promise<Blob> 改为 Blob
5.0.0新增 arrayBufferToBinaryStringbinaryStringToArrayBuffer 方法。

另请参阅