Protracktor与ocLazy负载

时间:2017-09-18 14:34:17

标签: javascript angularjs protractor e2e-testing oclazyload

当我使用 ocLazyLoad 重构我正在使用的项目时,我遇到了一个问题。在我这边,我是一个使用 Protracktor v.5.1.2 的自动化QA。

在实施上述功能之前,我成功使用了涉及

等选项的量角器
browser.ignoreSynchronization = false;

但是现在当应用程序单独下载js包时,量角器似乎认识到Angular $ http和$ timeout任务的结束,当加载第一个js包时。虽然页面仍然没有为进一步的工作做好准备,因为它会加载下一个延迟加载的包,我会收到如下错误:

No element found using locator

我也试过

browser.waitForAngularEnabled(true);

但如果看到source code ,这与ignoreSynchronization基本相同。

此类方法似乎效率很高

browser.sleep(5000);

browser.isElementPresent(by.css('a[ui-sref="some.stateLink"]'));

var $registerLink = element(by.css('a[ui-sref="some.stateLink"]'));

expect($registerLink.getText()).toEqual('Register Now');

var elem = by.css('a[ui-sref="some.stateLink"]');
browser.driver.wait(function() {
    return browser.isElementPresent(elem);
}, 5000);
var $registerLink = element(elem);
expect($registerLink.getText()).toEqual('Register Now');

但它们使测试变得脆弱,我的代码中有太多地方需要处理它。

有人遇到过这样的问题吗?与我建议的相比,有没有更好的解决方案?谢谢。

0 个答案:

没有答案