Angularjs 量角器可以';找不到之前已找到2个测试的元素

Angularjs 量角器可以';找不到之前已找到2个测试的元素,angularjs,testing,protractor,angularjs-e2e,Angularjs,Testing,Protractor,Angularjs E2e,带量角器的第一定时器。但我遇到了麻烦。尝试测试一个元素是否存在,然后测试另一个元素是否隐藏,然后再次测试第一个元素是否可单击并发出Boooom 量角器挂起响应元素NotVisibleError:元素当前不可见,因此可能无法与交互,而该元素在两次测试之前已找到。也许我做错了什么,但是什么 describe( 'filters' , function () { it ( 'has a .fil

带量角器的第一定时器。但我遇到了麻烦。尝试测试一个元素是否存在,然后测试另一个元素是否隐藏,然后再次测试第一个元素是否可单击并发出Boooom

量角器挂起响应
元素NotVisibleError:元素当前不可见,因此可能无法与
交互,而该元素在两次测试之前已找到。也许我做错了什么,但是什么

              describe( 'filters' , function () {                   

                    it ( 'has a .filter-editorial-rating .header' , function ( done ) {
                        element.all( by.css( '.filter-editorial-rating .header' ) )
                            .then( function ( el ) {
                                expect( el.length > 0).toEqual( true );
                                done();
                            });
                    });


                    it( 'ER filter is collapsed by default' , function ( done ) {

                        element.all( by.css ( '.filter-editorial-rating .content.ng-hide' ) )
                            .then( function (el) {
                                expect( el.length > 0).toEqual( true );
                                done();
                            });
                    });

                    it( 'ER filters header is clickable' , function ( done ) {
                        element( by.css( '.filter-editorial-rating .header' ) )
                                .click()   //  <--- hangs with error ElementNotVisibleError: Element is not currently visible and so may not be interacted with
                                .then( function ( el ) {
                                    done();
                                });
                    });
                });
这是

 <div class="header" ng-click="collapse.er = !collapse.er">
      <span class="icon icon_plus" ng-show="collapse.er"></span>
      <span class="icon icon_minus ng-hide" ng-show="!collapse.er"></span>

      <h4 class="title"> Star Rating </h4>
 </div>

星级
OOOOk。。。我的错

在config.js中设置
onPrepare()
methodof的窗口大小修复了该问题。 有一个媒体查询正在对该元素的容器进行处理

var width = 1024;
var height = 600;
browser.driver.manage().window().setSize(width, height);

我唯一的猜测是元素不是真的可见;前两个测试检查元素是否在DOM中,但唯一与之交互的测试是失败的测试。您可以通过尝试
单击()
/
发送文本()
或前两个测试中的其他方法来验证这一点,并验证这些测试是否也失败。要检查元素是否可见,请使用
.isDisplayed()
。如果要检查它是否在DOM中,请使用
.isPresent()
。我将前两个测试更改为
isDisplayed()
,因为这是测试元素是否存在并同时可见的正确方法。当
isDisplayed()
return为true时,元素是不可交互的。
var width = 1024;
var height = 600;
browser.driver.manage().window().setSize(width, height);