angularjs - Protractor 单击链接,但元素不可见?

标签 angularjs selenium-webdriver protractor end-to-end

各位,

当我想单击 html 页面列表中的链接时遇到问题。这是我的 html:

<h3>{{snapshot.contractKey}}&nbsp;</h3>
    <ul class="nav nav-pills nav-stacked">
                <li><a id="documentLink" href="" ng-click="checkAndRedirect('/document1/')"><span translate="contractDetail.document1"> Document</span>&nbsp;<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>&nbsp;<i class="fa fa-list-ul"></i></a></li>
                <li><a id="revisionsLink" href="" ng-click="checkAndRedirect('/document3/')"> <span translate="contractDetail.document3"> Revisions </span>&nbsp;<i class="fa fa-exchange"></i></a></li>
                <li><a id="auditTrailLink" href="" ng-click="checkAndRedirect('/document4/')"> <span translate="contractDetail.document4"> Audit Trail</span>&nbsp;<i class="fa fa-tasks"></i></a></li>
                <li><a id="actionHistoryLink" href="" ng-click="checkAndRedirect('/document5/')"> <span translate="contractDetail.document5">Action History </span>&nbsp;<i class="fa fa-clock-o"></i></a></li>
     </ul>

当我想在 Protractor 测试中通过 ID 单击链接时,显示错误没有此类元素元素不可见。

这是我的测试代码行:

element(by.id('documentLink')).click();

你知道为什么这是一个糟糕的解决方案以及该怎么办吗?

当我这样做时:

element.all(by.tagName('a')).then(function(results){ 
        expect(results.length).toEqual(5);
  });

他给我返回的是正确的信息,并且页面上有 5 个链接。但是当我尝试通过 ID 访问它们时,我不能这样做?

最佳答案

根据您的评论,我建议您在 Protractor 配置中使用 onPrepare 选项,在规范开始运行之前最大化浏览器窗口:

onPrepare: function() {
  browser.driver.manage().window().maximize();
}

关于angularjs - Protractor 单击链接,但元素不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787042/

相关文章:

javascript - Controller 之间奇怪的绑定(bind)持久性

angularjs - Protractor 测试能否以随机顺序运行?

javascript - TypeError : element(. ..).then 不是 Protractor 3.2.1 中的函数

javascript - Protractor E2E测试错误: Object [object Object] has no method 'getWindowHandle'

Protractor - 无法读取未定义的属性 '$$testability'

javascript - 使用 ng-style 在 css 中动态转换

ios - AngularJS Web 应用程序在 iPhone 6 上停止工作

angularjs - 创建包含组件的 Angular 表单的最佳方法是什么?

java - SaucelabsVM 中的 Salesforce 登录电子邮件验证

python - 按 id 查找元素在 Chrome Headless 模式下不起作用