量角器说复选框不可见,但确实如此。如何调查和修复它?

时间:2015-04-21 20:11:32

标签: angularjs selenium protractor angularjs-e2e

所以,我在一个有角度的应用程序中有这个HTML:

<div class="panel">
    <input class="eula" id="eula" type="checkbox" />
    <label for="eula">I agree</label>
</div>

这两个期望同样的规范(只是为了确保没有其他东西在运行):

expect(element(by.css('.panel')).isDisplayed()).toBeTruthy();
expect(element(by.css('.eula')).isDisplayed()).toBeTruthy();

第一个是真的。第二个是假的。那很奇怪。它也应该是真的。

所以,我试试:

element( by.css( '.panel' ) ).getOuterHtml()
.then( function ( html ) {
    console.log( html );
});

我得到了:

<input class="eula" id="eula" type="checkbox">

从我看到的情况来看,没有什么可以隐藏复选框,所以我不明白为什么量角器说不可见。有没有其他方法来测试这个?有关如何进行调试和修复的想法吗?

1 个答案:

答案 0 :(得分:0)

来自量角器isDisplayed()文档:

  

期望检查页面的DOM上是否存在元素并且可见。可见性意味着不仅要显示元素,还要使其高度和宽度大于0。

输入有一个display:none属性,这就是问题所在。