WebdriverIO 和 Browsermob

WebdriverIO & Browsermob

我目前正在尝试将 Browsermob 与 WebdriverIO 一起使用,我在另一个答案中找到了这段代码,但是当我 运行 它时,firefox 浏览器出现了,我在控制台中看到了 activity windows 我有 selenium 和 browsermob-proxy 运行ning,但它没有转到 search.yahoo.com 页面。它只是位于一个空白页,测试结束(表示它通过了,但那是另外一回事) 我正在 运行 在 Mac 上安装最新的 WebdriverIO 和 Browsermob 这是代码

var Proxy = require('browsermob-proxy').Proxy
    , webdriverio = require('webdriverio')
    , fs = require('fs')
    , proxy = new Proxy()
;

proxy.cbHAR('search.yahoo.com', doWebio, function(err, data) {
        if (err) {
            console.error('ERR: ' + err);
        } else {
            fs.writeFileSync('stuff.har', data, 'utf8');
        }
});

function doWebio(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);        

}

您是否尝试过使用 chrome。也许它会工作。为此:

  • here 的 chrome 驱动程序添加到您的 /usr/bin
  • 对上面的代码进行如下更改(注意代理中的大写 P)
  • 照常启动 selenium 服务器和 browserMob 并运行 测试

    desiredCapabilities: { browserName: 'chrome', seleniumProtocol: 'WebDriver', Proxy: { httpProxy: proxy } }

对于那些使用 FireFox 的人,您现在需要安装 GeckoDriver 才能将 FireFox 与 Selenium 一起使用。 https://github.com/mozilla/geckodriver/releases

此外,BrowserMob 代理自 2016 年以来一直没有发布。BrowserUp 代理是一个积极维护的 drop-in 替代 https://github.com/browserup/browserup-proxy,支持高达 Java 11,积极开发、brotli 支持、安全修复等。