Selenium + Firefox:我怎样才能同时使用Firefox二进制规范和Firebug扩展?

目前我正在使用下面的代码。

var co = require('co'); var WebDriver = require('selenium-webdriver'); var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer; co(function *() { // async var server = new SeleniumServer('/path/to/selenium', { port: 4444, jvmArgs: ['-Dwebdriver.firefox.bin=path/to/firefox'] // Firefox binary specification }); yield server.start(); // await var driver = new WebDriver .Builder() .usingServer(server.address()) .withCapabilities(WebDriver.Capabilities.firefox()) .build(); }); 

现在我需要添加Firebug扩展来提取networkingstream量为*.har文件。 我googlesearch到这个 :

 var firefox = require('selenium-webdriver/firefox'); var profile = new firefox.Profile(); profile.addExtension('/path/to/firebug.xpi'); profile.setPreference('extensions.firebug.showChromeErrors', true); var options = new firefox.Options().setProfile(profile); var driver = new firefox.Driver(options); 

要看到这一点,下面的方法似乎是可用的:

  • firefox.Options().setProfile()
  • firefox.Options().setBinary()

但是, firefox.Options()总是不返回任何…

在这里输入图像描述

这是怎么回事?

根据源代码 , Options()函数调用应该不返回任何内容:

 var Options = function() { /** @private {Profile} */ this.profile_ = null; /** @private {Binary} */ this.binary_ = null; /** @private {webdriver.logging.Preferences} */ this.logPrefs_ = null; /** @private {webdriver.ProxyConfig} */ this.proxy_ = null; }; 

您需要使用new来初始化Options对象:

 var options = new firefox.Options(); console.log(options); 

这将有一些可用的方法,包括setProfile()setBinary()

Interesting Posts