量角器无法找到之前已经发现2次测试的元素

时间:2014-09-03 14:24:00

标签: angularjs testing protractor angularjs-e2e

带量角器的第一个计时器。但我遇到了麻烦。试图测试一个元素是否存在,然后如果另一个元素被隐藏,那么如果第一个元素是可点击的又是boooooom ...

量角器挂起响应ElementNotVisibleError: Element is not currently visible and so may not be interacted with,而之前已经找到了两个测试元素。可能我做错了什么,但是什么?

              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();
                                });
                    });
                });

也尝试将它包装在element.all中,就像我在第一时间所做的那样(尝试伏都教)但是因为感谢上帝它没有用。 :)

我也尝试了getOuterHtml,我发现该元素确实存在

此...

it( 'ER filters header is clickable' , function ( done ) {
    element( by.css( '.filter-editorial-rating .header' ) )
      .getOuterHtml()
      .then( function ( html ) {
        console.log( html );
        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>

1 个答案:

答案 0 :(得分:3)

OOOOk ......我的不好

onPrepare()方法的config.js中设置窗口大小修复了问题。 有一个媒体查询用该元素的容器做技巧。

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