胡家伙,
当我想点击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点击链接时,显示错误没有这样的元素或元素不可见.
这是我的测试代码行:
element(by.id('documentLink')).click();
你知道为什么它是坏的解决方案,做什么?
当我这样做:
element.all(by.tagName('a')).then(function(results){ expect(results.length).toEqual(5); });
解决方法
根据您的评论,我建议您在规范开始运行之前使用Protractor配置中的onPrepare选项来最大化浏览器窗口:
onPrepare: function() { browser.driver.manage().window().maximize(); }