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