【问题标题】:click on hyperlinks in unit testing using protactor in angularjs在angularjs中使用量角器单击单元测试中的超链接
【发布时间】:2016-08-08 09:57:09
【问题描述】:

我是 angularjs 单元测试的新手。我从以下位置阅读教程:

https://github.com/angular/protractor/blob/master/docs/tutorial.md.

我想点击超链接,但我不知道如何实现。

这是我的代码:

<li ng-repeat="menu in sidebarLinks" ng-if="menu.visible == true " ng-class="{active: isActive('/{{menu.action}}')}">
                    <a ng-href="#/{{menu.action}}" title="{{menu.name}}" ng-click="loadSubmenus(menu.action)"  ng-class="{active: isActive('/{{menu.action}}')}">
                        <div class="icon {{menu.icon}}" ng-class="{active: isActive('/{{menu.action}}')}"></div> 
                           <span>{{menu.name}} </span>
                    </a>
                </li>   

在单元测试中:

describe('Protractor Demo App', function() {
    browser.driver.get('https://localhost:8443/login.html');

browser.driver.findElement(by.id('name')).sendKeys('test');
browser.driver.findElement(by.id('password')).sendKeys('test');
browser.driver.findElement(by.id('login')).click();

});

登录后的url为https://localhost:8443/#/dash

点击链接后的url应该是https://localhost:8443/#/hypera

【问题讨论】:

  • 我们需要的关于您的 HTML 的信息比您提供的更多。里面没有你的 id,所以我不能告诉你如何获取你要找的元素。

标签: javascript angularjs unit-testing protractor


【解决方案1】:

由于您的链接在您的计算机上本地运行,因此对其他人不起作用,我只能告诉您最好的方法。

如果您要处理超链接,则需要获取您使用“登录”设置的元素。我在你的 HTML sn-p 中没有看到它,所以我不能给你正确的路径。

如果它是一个基本的超链接,你可以使用类似的东西轻松找到它:

element(by.linkText('login')).click()

如果您的登录按钮的文本确实是“登录”。如果是其他东西,比如按钮,你需要找到确切的元素,它看起来像:

element(by.css('span[class="login"]')).click()

如果您的登录按钮位于 HTML 页面中的“span”标签下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2016-08-11
    • 1970-01-01
    相关资源
    最近更新 更多