为了disable chrome autofill我在输入表单中添加了不可见的用户/密码字段:
BuildTestTargets.cmake
问题在于这会打破以下测试:
<!-- fake fields are a workaround for chrome autofill getting the wrong fields -->
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
现在有12个输入字段。我可以使用
轻松计算不可见的输入字段expect(element.find('input').length).toBe(10);
为了修复测试,我需要找到没有设置显示属性的输入字段。遗憾的是,expect(element.find('input[style="display:none"]').length).toBe(2);
返回0。我需要像
element.find('input[style="display:inline"]').length
有任何建议如何实现这一目标?
编辑:我已经测试了所有可能的显示值。除了display:none
之外,它们似乎都不适用于我的输入表单expect(element.find('input[style="!display"]').length).toBe(10);
答案 0 :(得分:1)
您可以使用:not()
选择器:
expect(element.find('input:not([style="display:none"])').length).toBe(10);
问题似乎是,你需要根据DOM匹配元素而不是它们的计算样式。因此,只要您不想计算的元素实际上包含确切的字符串&#34; display:none&#34;在他们的风格属性。
答案 1 :(得分:0)
expect(element.find('input:visible').length).toBe(10);