繁体   English   中英

在锚标记上测试ng-click处理程序

[英]Test ng-click handler on anchor tag

我有一个链接到外部站点的常规(非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标签?

我想您需要在单击发生后等待文本更改。 单击后立即从代码中查找文本吗? 您是否尝试过预期条件

var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElement($('body'), 'Going to Google'), 5000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM