javascript - Protractor :如何单击据说不可见的链接

标签 javascript angularjs testing protractor

我需要点击页眉中的链接:

<div class="fixed">
        <nav class="top-bar" data-options="is_hover:false">
        ...
        <section class="top-bar-section">
            <ul class="left">
                ...
                <li ng-show="hasPermission('ROLE_MESSAGE')" class=""><a href="#/message" class="ng-binding">Message</a></li>
            </ul>
        </section></nav>
</div>

但是任何尝试都会因“元素不可见错误”而失败。 这似乎很奇怪,因为在上一步中我以具有 ROLE_MESSAGE 权限的用户身份登录。 尝试了不同的定位器,但都不起作用。

最佳答案

很可能,您首先需要打开菜单,然后单击链接:

var navigationMenu = element(by.css("nav.top-bar"));
navigationMenu.click();

navigationMenu.element(by.linkText("Message")).click();

或者,您可能需要将鼠标悬停在导航菜单上而不是单击它:

var navigationMenu = element(by.css("nav.top-bar"));
browser.actions().mouseMove(navigationMenu).perform();

navigationMenu.element(by.linkText("Message")).click();

如果没有帮助,您可以单击带有 javascript 的链接,但我会尽量避免这样做:

var navigationMenu = element(by.css("nav.top-bar"));
var messageLink = navigationMenu.element(by.linkText("Message")).click();

browser.executeScript("arguments[0].click();", messageLink);

关于javascript - Protractor :如何单击据说不可见的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136899/

相关文章:

javascript - 使用 Angular.ui Datepicker 没有显示日期

android - 如何确保我的 Android 应用程序适用于所有/大多数手机?

javascript - 单击按钮以打开拼写检查

javascript - Angular CoffeeScript 语法错误

javascript - Jquery - 对多个 id 使用一个函数以节省重复代码

javascript - Angularjs 翻译提供者前缀问题

windows - 有没有win的浏览器可以用来测试html5 localstorage的?

java - 如何在camel测试中配置application.properties?

Javascript 作用域和 this.Variable

javascript - 坚持构建一个 Meteor 项目