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

Angularjs 我可以在Angular.js同步中添加另一个条件吗,angularjs,protractor,Angularjs,Protractor,量角器在继续执行流之前会等待Angular.js进程完成。它在每个步骤中都会这样做(在每次单击()调用之后,等等) 我正在测试一个应用程序,它有很多“加载器”,由于某些原因,这些加载器没有被同步捕获,并且我得到了很多错误 我可以在每条指令后手动放置等待,但最好在每条指令后执行此等待 有没有办法向量角器同步机制中添加另一个条件?好的,这有点黑客行为,但我找到了这种方法。量角器在每个webdriver命令之后使用waitForAngular() 您可以在例如onPrepare: browser.wa

量角器在继续执行流之前会等待Angular.js进程完成。它在每个步骤中都会这样做(在每次单击()调用之后,等等)

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

我可以在每条指令后手动放置等待,但最好在每条指令后执行此等待


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

好的,这有点黑客行为,但我找到了这种方法。量角器在每个webdriver命令之后使用
waitForAngular()

您可以在例如
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()');
        }
    };

您是否尝试过使用隐式等待,它在每条量角器指令之后执行?您可以在conf.js文件的
onPrepare()
函数中编写一个-
browser.manage().timeout().implicitlyWait(35000)。如果出现等待超时错误,则增加您的
defaultTimeoutInterval:80000
,以便量角器在超时之前等待更长的时间。我理解您的观点。但我认为我需要的不是正常的超时,而是等待()直到图形加载程序消失。我已经有一个函数waitUntilLoaderDissapears(),但我需要在每个量角器指令之后执行该函数。我想一种解决方法是将该函数放在afterEach()中,但我认为这只会在每个it()函数之后执行。