【发布时间】:2014-05-21 15:03:45
【问题描述】:
各位,
当我想单击 html 页面列表中的链接时遇到问题。这是我的html:
<h3>{{snapshot.contractKey}} </h3>
<ul class="nav nav-pills nav-stacked">
<li><a id="documentLink" href="" ng-click="checkAndRedirect('/document1/')"><span translate="contractDetail.document1"> Document</span> <i class="fa fa-file-text"></i></a></li>
<li class="active"><a id="detailsLink" href="" ng-click="checkAndRedirect('/document2/')"> <span translate="contractDetail.document2"> Details</span> <i class="fa fa-list-ul"></i></a></li>
<li><a id="revisionsLink" href="" ng-click="checkAndRedirect('/document3/')"> <span translate="contractDetail.document3"> Revisions </span> <i class="fa fa-exchange"></i></a></li>
<li><a id="auditTrailLink" href="" ng-click="checkAndRedirect('/document4/')"> <span translate="contractDetail.document4"> Audit Trail</span> <i class="fa fa-tasks"></i></a></li>
<li><a id="actionHistoryLink" href="" ng-click="checkAndRedirect('/document5/')"> <span translate="contractDetail.document5">Action History </span> <i class="fa fa-clock-o"></i></a></li>
</ul>
当我想在量角器测试中按其 ID 点击链接时,会显示错误 No such element 或 Element is not visible.
这是我的测试代码行:
element(by.id('documentLink')).click();
您知道为什么它是不好的解决方案以及该怎么做吗?
当我这样做时:
element.all(by.tagName('a')).then(function(results){
expect(results.length).toEqual(5);
});
他回复我说的是正确的,页面上有 5 个链接。但是当我尝试通过 ID 访问它们时,我不能这样做吗?
【问题讨论】:
-
您的链接在下拉列表中吗?
-
不,不是。是标签菜单。
-
什么给了:
expect(element(by.id('documentLink')).isDisplayed()).toBe(true);? -
说的是真的。量角器识别链接
-
抱歉,我找到了解决方案。这是我的错。因为我的测试配置设置为量角器打开 Chrome 浏览器的一半,所以我的选项卡菜单位于按钮下方(因为响应性),这导致链接在页面上不可见。谢谢你的帮助。
标签: angularjs selenium-webdriver protractor end-to-end