【问题标题】:Protractor clicking on the link, but element is not visible?量角器单击链接,但元素不可见?
【发布时间】:2014-05-21 15:03:45
【问题描述】:

各位,

当我想单击 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>

当我想在量角器测试中按其 ID 点击链接时,会显示错误 No such elementElement 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


【解决方案1】:

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

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

【讨论】:

  • 是的,这正是我想要的。谢谢。
  • 我还有一个问题:如果我与单击按钮时建立的另一个站点集成,我可以继续测试一些工作流场景并在另一个站点上使用元素的 id例如,我得到萤火虫?这是一个问题吗,因为那是不同的网站?
  • 哇,这可能是另一个很好的问题!你所说的“整合”是什么意思?它是否包含在您的页面中,是不同的路线还是弹出窗口?您应该提出一个新问题并提供有关您的案例的更多详细信息;)
  • 是的,我会这样做,并在此处将问题链接给您 :)
  • @axk 所以你需要“告诉”量角器向下滚动。也许这些答案可以帮助你:stackoverflow.com/a/23573893stackoverflow.com/a/24181048 ;)
猜你喜欢
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多