当前位置: 首页 > 知识库问答 >
问题:

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

农鸿德
2023-03-14

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

<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>

我的量角器测试看起来像:

it('should display relevant portfolio when clicked',function(){

    ptor.ignoreSynchronization = true;  
    element.all(by.xpath("//a[@ng-click='displayPortfolio(p)'])).then(function(list){
      list[0].click();
      expect(... some assertion here);

    });
    ptor.ignoreSynchronization = false;  
}

如果你想知道的话,ptor.ignoreSynchronization是启用的,因为我的网页不断地轮询后端的一些更新。

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

ElementNotVisisbleError: element not visible

我不明白这个错误是关于什么的。这个元素肯定是可见的,因为当我查看页面的源代码时,我可以在DOM结构中看到它。

善意的忠告

共有2个答案

淳于凯
2023-03-14

你试过用中继器定位器吗?

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);
    });
}
窦成荫
2023-03-14

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

在您的场景中尝试同样的方法。

 类似资料:
  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)外,所有其他方法都工作正常。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我所能做到的最好的事情是将“选择”框设置为一定的宽度,但是下拉菜单本身要宽得

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。一切都很好,除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此

  • 我正在使用Protractor运行一个自动脚本,其中一个页面上有两个下拉菜单,它们位于彼此的下方/上方。这两个似乎完全相同,只是它们有不同的ng模型名称等。我可以从一个下拉菜单中成功地选择一个元素,但我不能为另一个选择。这有点让我头疼,为什么一个有效,另一个无效。下面是我可以选择元素的下拉菜单的代码 我的另一个下拉菜单如下: 当我试图从第二个下拉菜单中选择一个项目时,我得到了“element no

  • 有很多方法可以做到这一点,我已经尝试了很多方法,但是在做自动测试时,我不能从下拉菜单中选择一个项目。 “选择”是出现在下拉菜单中的默认选择,我希望自动化测试选择其中一个元素,不管是哪个 这是HTML代码 这是我的量角器档案 我尝试过使用by.cssElement、by.xpath等。当我运行上面的代码时,我没有得到任何错误,但它也没有选择任何元素。谢谢

  • 问题内容: 我试图使用AngularJS创建一个链接/级联的下拉列表(选择元素),但是我很难用我的对象属性过滤和更新“ selected”属性。 首次加载页面时,所选项目将被过滤并正确显示在下拉菜单中。更改父级下拉菜单后,子级选择项不会抓住已过滤列表中的第一个项,导致子级下拉项不会更新。 任何见解将不胜感激,请注意,我将父/子/孙子数组分开(而不是在子数组中),因为最终我将从SQL中的单独spoc

  • 我是使用selenium ide的新手。 我已经让我的代码的所有其他部分工作。 但是我目前有一个问题,让它在下拉菜单中选择一个选项。 我为下拉列表和