我可以在Angular.js同步中添加另一个条件吗?

时间:2015-10-02 22:45:29

标签: angularjs protractor

在继续执行流程之前,Protractor会等待Angular.js进程完成。它在每一步(每次click()调用之后等)执行此操作。

我正在测试一个有很多“加载器”的应用程序,由于某种原因这些加载器没有被这种同步捕获,而且我遇到了很多错误。

我可以在每条指令后手动等待,但在每条指令后执行此等待会很好。

有没有办法为量角器同步机制添加另一个条件?

1 个答案:

答案 0 :(得分:1)

好的,所以这有点黑客,但我发现了这种方式。量角器在每个webdriver命令后使用waitForAngular()https://github.com/angular/protractor/blob/f034e010156a85cf1826b95eb7f41f50ef5a1791/lib/protractor.js#L319

您可以更改该功能,例如onPrepare:

browser.waitForAngular = function(opt_description) {
        var description = opt_description ? ' - ' + opt_description : '';
        var self = this;
        waitUntilLoaderDissapears();
        if (this.ignoreSynchronization) {
            return self.driver.controlFlow().execute(function () {
                return true;
            }, 'Ignore Synchronization Protractor.waitForAngular()');
        }
    };