比较赛普拉斯中的两个base64图像字符串

时间:2020-04-27 09:35:12

标签: cypress

我想比较以下两个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);
      })
  });
});

1 个答案:

答案 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(),以提高可读性。