赛普拉斯断言.should()失败

时间:2019-04-30 12:42:49

标签: javascript jquery reactjs redux cypress

我要使用

cy.getByTestId(testId)
        .should('have.attr', 'data-testStatus', 'OK')
        .and('have.attr', 'opacity', '0');

cy.getByTestId(testId)为我带来了这一点:

<circle class="js-components-SvgFiles-SvgBearingBlock-___SvgBearingBlock__featureSelected___RhROg" 
cx="66.5" cy="66.5" r="29.925" stroke-width="0" opacity="0" data-testStatus="OK" data-testid="fixedBearing_Circle"></circle>

但我总是收到此错误消息:

expected <circle.js-components-SvgFiles-SvgBearingBlock-___SvgBearingBlock__featureSelected___RhROg> to have attribute data-testStatus 

为什么.should(不使用外部html?


我已经测试了您的所有建议。不幸的是总是有相同的结果:

[1]: https://i.stack.imgur.com/yhUlu.png

那是用React写的代码:

return (
    <svg className={cn(style.svg, className)} width={size} height={size}
         data-testid={blockType+'_'+( isLeftSide?'Left':'Right')} data-testStatus={testIdPlane}>
      {feature}
      {/* id of the bearing*/}
      <text
        className={colorText}
        x={textPos}
        y={size * 0.85}
        textAnchor="middle"
        fontSize={fontSize}
        fontWeight="bold"
      >
        {text}
      </text>
      {dummyText}
    </svg>
  );

那是 React Code

我才意识到像这样的东西:

cy.getByTestId('slidingBearing_Line')
            .should('have.attr', 'opacity', '1')
            .and('have.attr', 'y')
            .should('gt', y);

正在工作

2 个答案:

答案 0 :(得分:0)

无法复制以下内容:

describe('test', () => {
    it('test', () => {
        cy.document().then( doc => {
            doc.body.innerHTML = `<circle class="js-components-SvgFiles-SvgBearingBlock-___SvgBearingBlock__featureSelected___RhROg"
            cx="66.5" cy="66.5" r="29.925" stroke-width="0" opacity="0" data-testStatus="OK" data-testid="fixedBearing_Circle"></circle>`;
        });

        cy.get('[data-testid="fixedBearing_Circle"]')
            .should('have.attr', 'data-testStatus', 'OK')
            .and('have.attr', 'opacity', '0');
    });
});

您可以共享更多代码吗?

答案 1 :(得分:0)

请尝试以下代码。

cy.get('[data-testid="fixedBearing_Circle"]')
    .should('have.attr', 'data-testStatus', 'OK')
    .and('have.attr', 'opacity', '0');

ScreenShot:Screenshot of the result