使用BrowserMobProxy配置WebDriverIO

Bra*_*don 6 javascript selenium webdriver node.js browsermob

有没有人有关于如何使用WebDriverIO配置BrowserMobProxy的正确示例?这样我就可以捕获网络流量.我以前曾使用WebDriverJS,它本质上是WebDriverIO的弃用版本.

use*_*289 3

您可以使用下面的代码来做到这一点。确保您的browsermob proxyselenium server正在运行。然后将以下代码复制粘贴到test.js文件中并将其放入webdriverio已安装的文件夹中。从cmd转到该文件夹​​并运行node test.js. stuff.har应该在test.js所在位置生成。

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().then(cb);        

}
Run Code Online (Sandbox Code Playgroud)