当计算的宽度不准确时,如何测试 cypress 中元素的宽度?

Ash*_*ary 2 css testing rounding-error e2e-testing cypress

假设我div在 DOM 中有一个'200px'宽度为 a 的class元素'target'

为了用 cypress 测试它的宽度,我应该编写下面的代码:

cy.get('.target').should('have.css', 'width', '200px');
Run Code Online (Sandbox Code Playgroud)

还有一堆测试,测试元素的宽度和高度......

...

今天发生了一件奇怪的事情!

width所有这些测试都失败了,因为发现的柏树的价值200.0000000000032038879956012px不是200px

我想到的第一个解决方案是用实际数字(ex,)来测试它们,而不是柏树找到的200字符串(ex, );'200px'我认为这是一个昂贵的想法!

你认为我怎样才能克服这个问题!?

Nop*_*Sad 7

无需任何转换即可匹配,

cy.get('div')
  .invoke('css', 'width')
  .should('match', /200.*px/)   // matches 200.0000000000032038879956012px or 200px
Run Code Online (Sandbox Code Playgroud)