【发布时间】:2016-06-02 11:23:05
【问题描述】:
我有一个链接到外部站点的常规(非 JS)锚标记,但在单击时执行的其他行为会更改 DOM
<body ng-controller="MyController">
<a href="https://www.google.co.uk/" ng-click="inProgress = true">
{{ inProgress ? "Going to Google" : "Go to Google" }}
</a>
</body>
我想在 E2E 量角器测试中测试这种行为。但是,看起来一旦单击链接,后续命令就会在外部页面的上下文中运行。例如,以下测试通过:
browser.element(by.css('a')).click();
expect(browser.getCurrentUrl()).toBe('https://www.google.co.uk/');
但以下测试失败
browser.element(by.css('a')).click();
expect(browser.element(by.css('body')).getText()).toBe('Going to Google');
用失败显示谷歌主页的内容为body的文字。
如何测试点击非 JavaScript a 标记后会发生什么?
【问题讨论】:
-
如果你想让你的链接在不同的窗口打开,则添加_blank目标,否则测试正确失败,点击链接时你的html消失
-
@floribon 目前,我不希望链接在新窗口中打开,但我确实想测试用户在单击链接后是否看到链接中的文本更改。
-
你可以使用 JQuery triggerHandler 来测试这个场景。
browser.element('a').triggerHandler('click') -
@RameshkumarArumugam 听起来很有潜力。添加作为答案? (但是,我正在测试的应用程序不包含 jQuery)
标签: javascript html angularjs protractor