无法断言CSS宽度为100%

时间:2018-06-28 12:14:53

标签: javascript css testing bdd nightwatch.js

我试图将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%");

我不想使用硬编码的值,因为它们可以根据容器的宽度而变化。正确的方法是什么?

我在这里使用页面对象模型,但是可以不用它。

1 个答案:

答案 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');