【发布时间】:2019-05-28 22:36:42
【问题描述】:
似乎是一个常见问题,但找不到与我的问题相对应的任何内容。
我的测试运行良好,直到它重新加载页面并需要从下拉列表中捕获一个元素。首先,我尝试使用 IsPresent 来查看 Protractor 是否可以找到名为“workbenchItems”的下拉谎言,并且我还添加了一个长时间的睡眠,但它不起作用,然后当然它也无法捕获下拉列表 - 元素我需要捕捉的最后一行叫做:'我需要捕捉的下拉列表中的元素'
在此处查看量角器代码:
<div class="workbenchItems">
<div data-uib-accordion="" data-close-others="false" data-template- url="modules/common/accordion/accordion.tpl.html">
<div role="tablist" class="panel-group accordion" ng-transclude="">
<div data-uib-accordion-group="" ng-click="$ctrl.setIsOpen($ctrl.itemIndex, $ctrl.isOpen)" class="panel-default ng-scope ng-isolate-scope panel panel-open"
data-template-url="modules/common/accordion/accordion-group.tpl.html" data-nobody="true"
data-leveltitle="h3" data-is-open="$ctrl.isOpen">
<div class="panel-heading no-bottom-border" data-ng-class="{'no-bottom-border': noBody}" style="">
<h2 class="panel-title"><a href="" tabindex="0" class="accordion-toggle" ng-click="toggleOpen()"
uib-accordion-transclude="heading"><span uib-accordion-header="" ng-class="{'text-muted': isDisabled}"
ng-bind-html="heading" class="ng-binding">
<div class="ng-scope"><span ng-bind="::$ctrl.item.sectionName" class="ng-binding">Element
from dropdown that I need to catch</span> <span class="count ng-binding"
ng-bind="::$ctrl.item.sectionCount">2159</span></div>
</span></a></h2>
</div>
<div class="panel-collapse in collapse" uib-collapse="!isOpen" aria-expanded="true" aria-hidden="false"
style="">
这是我试图从行中捕获第二个元素
const toolaud = await element.all(by.tagName('accordion-toggle')).get(1);
toolaud.click();
browser.waitForAngular();
browser.sleep(60 * 1000);
【问题讨论】:
-
什么是
browser.waitForAngular(); -
从这里拿来的:protractortest.org/#/… 不过没关系,即使我删除它也不起作用。也许这是某种嵌套元素问题?或者它可能是什么。刚刚用xpath试过了,也不管用..
-
tagName('accordion-toggle')我找不到标签名称为accordion-toggle,也许没有这样的标签名称 -
@Tina86 使用
element(by.css("h2.panel-title a"))而不是element.all(by.tagName('accordion-toggle')).get(1) -
非常感谢萨达姆,这很有效!但是我怎样才能点击第一个呢?由于有很多面板标题..
标签: angular selenium protractor automated-tests