problème de fichier har browsermob-proxy avec webdriverio

J’essayais d’utiliser browsermob-proxy en utilisant ceci et cela avec webdriverio. Il fonctionne bien, mais aucun fichier har généré. J’ai essayé de changer la ligne ci-dessous

 fs.writeFileSync('stuff.har', data, 'utf8'); 

à

 fs.writeFile('/Users/abc/xyz/stuff.har', data, 'utf8'); 

dans le code ci-dessous (à partir des liens ci-dessus)

  var Proxy = require('browsermob-proxy').Proxy , webdriverio = require("./node_modules/webdriverio/") , fs = require('fs') , proxy = new Proxy() ; proxy.cbHAR('search.yahoo.com', doSeleniumStuff, function(err, data) { if (err) { console.error('ERR: ' + err); } else { fs.writeFileSync('stuff.har', data, 'utf8'); } }); function doSeleniumStuff(proxy, cb) { var browser = webdriverio.remote({ host: 'localhost' , port: 4444 , desiredCapabilities: { browserName: 'firefox', seleniumProtocol: 'WebDriver', proxy: { httpProxy: proxy } } }); browser .init() .url("http://search.yahoo.com") .setValue("#yschsp", "javascript") .submitForm("#sf") .end(cb); } 

mais toujours aucun fichier har à l’emplacement n’est généré. Qu’est-ce qui manque ici?

J’ai finalement pu exécuter le code ci-dessous pour générer le fichier har. Notez le changement mineur à la fonction .end(cb); partir de .end(cb); to .end().then(cb);

 var Proxy = require('browsermob-proxy').Proxy , webdriverio = require("./node_modules/webdriverio/") , fs = require('fs') , proxy = new Proxy() ; proxy.cbHAR('search.yahoo.com', doSeleniumStuff, function(err, data) { if (err) { console.error('ERR: ' + err); } else { fs.writeFileSync('stuff.har', data, 'utf8'); //fs.writeFile('/Users/hanu/Desktop/amit/webdriverio/webdriverio-test/stuff.har', data, 'utf8'); } }); function doSeleniumStuff(proxy, cb) { var browser = webdriverio.remote({ host: 'localhost' , port: 4444 , desiredCapabilities: { browserName: 'firefox', seleniumProtocol: 'WebDriver', proxy: { httpProxy: proxy } } }); browser .init() .url("http://search.yahoo.com") .setValue("#yschsp", "javascript") .submitForm("#sf") .end().then(cb); }