我试图将NightwatchJS中某个元素的CSS宽度断言为100%,但是它不能说宽度为196px。错误消息是:
测试元素<[data-e2e =“ base-button”] [class =“ xs block”]>是否具有 css属性“宽度:100%”。 -预期为“ 100%”,但得到:“ 196px”
我尝试使用以下语法来实现相同的目的:
page.assert.cssProperty(`@button-element`, 'width', '100%');
page.expect.element(`@${element}`).to.have.css("width").which.equals("100%");
我不想使用硬编码的值,因为它们可以根据容器的宽度而变化。正确的方法是什么?
我在这里使用页面对象模型,但是可以不用它。
答案 0 :(得分:1)
为什么不先获取父母的宽度,然后再获取孩子的宽度,然后对它们进行比较以计算百分比呢?
我自己不使用守夜人,但是您上面描述的伪代码应该类似于:
const {expect} = require('chai');
let buttonParentSize = page.get.cssProperty(`@button-parent`, 'width'),
buttonSize = page.get.cssProperty(`@button-element`, 'width'),
buttonSizePercentage = (buttonSize / buttonParentSize)*100;
expect(buttonSizePercentage).to.equal('100');