量角器:如何点击据说不可见的链接

时间:2015-06-30 11:22:11

标签: 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权限的用户身份登录。 试过不同的定位器,但都没有用。

1 个答案:

答案 0 :(得分:2)

最有可能的是,您首先需要打开菜单,然后点击链接:

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);