Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Protractor 在量角器的下拉菜单中选择元素_Protractor - Fatal编程技术网

Protractor 在量角器的下拉菜单中选择元素

Protractor 在量角器的下拉菜单中选择元素,protractor,Protractor,我的页面上有一个下拉菜单。我的量角器测试目标是单击此下拉菜单的选项之一,并让量角器检查结果: <ul class="dropdown"> <li class="nav-header">portfolio</li> <li class="divider"></li> <li class="dropdown-submenu"> ... </li> <li ng-repeat="p in u

我的页面上有一个下拉菜单。我的量角器测试目标是单击此下拉菜单的选项之一,并让量角器检查结果:

<ul class="dropdown">
  <li class="nav-header">portfolio</li>
  <li class="divider"></li>
  <li class="dropdown-submenu"> ... </li>


   <li ng-repeat="p in user.portfolios">
    <!-- this is the option we will click for our testing -->
    <a href ng-click="displayPortfolio(p)>Portfolio 1  </a>
   </li>

   <li ng-repeat="p in user.portfolios">
    <a href ng-click="displayPortfolio(p)>Portfolio 2  </a>
   </li>  

   <li ng-repeat="p in user.portfolios">
    <a href ng-click="displayPortfolio(p)>Portfolio 3  </a>
   </li>  


</ul>
如果您想知道,ptor.ignoreSynchronization是启用的,因为我的网页不断轮询后端以获取一些更新

运行测试时,量角器抛出以下错误:

ElementNotVisisbleError: element not visible
我不明白这个错误是怎么回事。元素肯定是可见的,因为当我查看页面的源代码时,我可以在DOM结构中看到它


请告知

我已经通过直接设置值处理了相同的情况。找到元素并使用“sendKeys”设置值


对您的场景尝试相同的方法。

您是否尝试过使用中继器定位器

it('should display relevant portfolio when clicked',function(){
    var elements = element.all(by.repeater('p in user.portfolios'));
    elements.get(0).click().then(function(){
        expect(... some assertion here);
    });
}
it('should display relevant portfolio when clicked',function(){
    var elements = element.all(by.repeater('p in user.portfolios'));
    elements.get(0).click().then(function(){
        expect(... some assertion here);
    });
}