我有一个常规(非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');
如果失败,则会将Google主页的内容显示为body
的文字。
如何测试点击非Javascript a
代码后会发生什么?
答案 0 :(得分:1)
我想你需要在点击发生后等待文本改变。从您的代码中,您是在点击后立即查找文本?你试过Expected Conditions
吗?var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElement($('body'), 'Going to Google'), 5000);