无法断言 css 宽度为 100%
Unable to assert css width to be 100%
我试图断言 NightwatchJS 中某个元素的 CSS 宽度为 100%,但它未能说明宽度为 196px。错误信息是:
Testing if element <[data-e2e="base-button"][class="xs block"]> has
css property "width: 100%". - Expected "100%" but got: "196px"
我已经尝试使用以下语法来实现相同的目的:
page.assert.cssProperty(`@button-element`, 'width', '100%');
page.expect.element(`@${element}`).to.have.css("width").which.equals("100%");
我不想使用硬编码值,因为它们会根据容器宽度而改变。正确的做法是什么?
我在这里使用页面对象模型,但没有它也可以。
为什么不先获取父项的宽度,然后获取子项的宽度,然后比较它们来计算百分比?
我自己不使用 nightwatch,但是你上面描述的伪代码应该是这样的:
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');
我试图断言 NightwatchJS 中某个元素的 CSS 宽度为 100%,但它未能说明宽度为 196px。错误信息是:
Testing if element <[data-e2e="base-button"][class="xs block"]> has css property "width: 100%". - Expected "100%" but got: "196px"
我已经尝试使用以下语法来实现相同的目的:
page.assert.cssProperty(`@button-element`, 'width', '100%');
page.expect.element(`@${element}`).to.have.css("width").which.equals("100%");
我不想使用硬编码值,因为它们会根据容器宽度而改变。正确的做法是什么?
我在这里使用页面对象模型,但没有它也可以。
为什么不先获取父项的宽度,然后获取子项的宽度,然后比较它们来计算百分比?
我自己不使用 nightwatch,但是你上面描述的伪代码应该是这样的:
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');