量角器很容易提供主动等待某些条件。在 8887 上启动代理后。我用于browser.driver.wait
此解决方案:
// protractor.conf.js
var browsermob = require('browsermob-proxy').Proxy;
var webdriver = require('selenium-webdriver');
var fs = require('fs');
// ...
var proxy;
var conf = {
// Typical protractor configuration
// ...
beforeLaunch: function(){
proxy = new browsermob({
port : 8887
});
},
onPrepare: function (){
browser.driver.get('http://localhost:8080/index.html');
var proxyReady = false;
proxy.start(8888, function(err, data){
if (!err) {
proxy.startHAR(8888, 'test', true, true, function(){
proxyReady = true;
});
} else {
console.error(err);
}
});
browser.driver.wait(function(){
return proxyReady;
});
},
onComplete: function () {
var proxyDone = false;
proxy.getHAR(8888, function(err, resp) {
if (!err) {
console.log('har saved at output.har');
fs.writeFileSync('test/diagnostics/output.har', resp, 'utf8');
} else {
console.err('Error getting HAR file: ' + err);
}
proxy.stop(8888, function() {
proxyDone = true;
});
});
return browser.driver.wait(function(){
return proxyDone;
});
},
}