我想比较以下两个base64字符串,以确保按预期上传照片。我该怎么办?这是我的下面的代码,目前我收到错误消息:
You attempted to make a chai-jQuery assertion on an object that is neither a DOM object or a jQuery object.
The chai-jQuery assertion you used was:
> text
这是我的代码:
it('should allow the user to select a navbar component and replace a logo', () => {
cy.getIframeBody('builder-showcase').find('[data-cy="navbar-component"]').eq(0).click();
cy.getIframeBody('builder-showcase').find('[data-cy="navbar-logo-image"]').eq(0).click();
cy.get('[data-cy="builder-sidebar-menu-select-image-navbar"]').eq(0).click();
const navbarLogoImage = 'navbar-logo-image.png';
cy.fixture(navbarLogoImage).then(originalLogoImage => {
cy.get('[data-cy="image-file-input"]').attachFile(navbarLogoImage);
cy.get('[data-cy="image-alt-text"]')
.clear()
.type('Twitter logo image');
cy.get('.source-image').invoke('attr', 'src')
.then(uploadedLogoImage => {
expect(uploadedLogoImage).to.have.text(originalLogoImage);
})
});
});
答案 0 :(得分:1)
chai链接器to.have.text
验证元素(DOM或JQuery)是否包含预期的文本。您的uploadedLogoImage
是一个字符串。然后,您应该使用可与以下字符串一起使用的链接器:
expect(uploadedLogoImage).to.eq(originalLogoImage);
或
expect(uploadedLogoImage).to.contain(originalLogoImage);
或使用should()
,您可以直接查询元素:
cy.get('.source-image').should('have.attr', 'src', originalLogoImage);
提示:除了使用eq(0)
以外,您还可以使用first()
,以提高可读性。