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); }