css - 当计算出的宽度不准确时,如何在柏树中测试元素的宽度?

标签 css testing cypress e2e-testing rounding-error

假设我在 DOM 中有一个 div,宽度为 '200px'class'target'.

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

cy.get('.target').should('have.css', 'width', '200px');

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

...

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

所有这些测试都失败了,因为 cypress 发现的 width 的值是 200.0000000000032038879956012px 而不是 200px !!!

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

你认为我该如何克服这个问题!?

最佳答案

无需任何转换即可匹配,

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

关于css - 当计算出的宽度不准确时,如何在柏树中测试元素的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72414377/

相关文章:

node.js - 测试失败后不运行 Jest globalTeardown

list - Cypress 根据文本从多个元素中查找元素并单击它

testing - 如何在嵌入式系统中进行回归测试

javascript - 如何使用 Jest 模拟非默认导入

Cypress 重新加载页面直到元素可见

cypress - 在 Cypress 中单击时对话框无法解析

javascript - 在每 2x2 列和行的 Bootstrap 网格布局上应用悬停框

javascript - 如何创建指向最初使用 slideToggle 隐藏的部分的链接

javascript - 通过 'vertical-align' 变化的位置动画

css - 背景渐变问题