selenium - 无法使用 Selenium 安装 WebExtension

标签 selenium firefox selenium-webdriver firefox-addon-webextensions selenium-firefoxdriver

我正在尝试测试我的 firefox webextension,但 firefox 拒绝安装它,因为它没有 install.rdf文件。但是 webextensions 不再使用该文件。

const firefox = require('selenium-webdriver/firefox');
const webdriver = require('selenium-webdriver');
require('geckodriver');

let profile = new firefox.Profile();
profile.addExtension(process.cwd() + '/build/firefox/');
profile.setPreference('extensions.firebug.showChromeErrors', true);


let options = new firefox.Options().setProfile(profile);

let _driver = new webdriver.Builder()
.forBrowser('firefox')
.setFirefoxOptions(options)
.build();

Error: ENOENT: no such file or directory, open '/dev/webext/build/firefox/install.rdf'



是否有我需要启用的设置才能告诉它它是一个网络扩展?

最佳答案

Selenium v​​3.4.0 尚不支持 WebExtension API。方法Profile::addExtension仅适用于 install.rdf 的旧插件存在于根部。

要测试 Web 扩展,您可以使用已安装扩展的配置文件,或者您可以实现自 v0.17.0 以来 GeckoDriver 可用的自定义命令:

var webdriver = require('selenium-webdriver');
var Command = require('selenium-webdriver/lib/command').Command;


function installWebExt(driver, extension) { 
  let cmd = new Command('moz-install-web-ext')
    .setParameter('path', path.resolve(extension))
    .setParameter('temporary', true);

  driver.getExecutor()
    .defineCommand(cmd.getName(), 'POST', '/session/:sessionId/moz/addon/install');

  return driver.schedule(cmd, 'installWebExt(' + extension + ')');
}


var driver = new webdriver.Builder()
  .forBrowser('firefox')
  .build();

installWebExt(driver, "C:\\temp\\extension.zip");

关于selenium - 无法使用 Selenium 安装 WebExtension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44969025/

相关文章:

java - 如何使用 Apache POI 和 Java 创建超链接?

css - 剪辑路径 SVG 在 Firefox 中不缩放 - 在其他浏览器中工作

ruby - Selenium WebDriver 将 Firefox 路径更改为 Tor

webdriver - Selenium webdriver C# - 获取整页截图

javascript - 错误 :process_metrics. cc 未实现错误

javascript - Selenium javascript webdriver 如何使用 findElements

google-chrome - 在 Google Chrome 中测试 Behat 脚本

javascript - <canvas> 绘图在 Firefox Mobile、HUAWEI Mediapad 10、Android 4.1.2 上损坏

java - 让 WebDriver 在没有 ExpectedCondition 的情况下等待

javascript - Protractor - 如何在 Protractor 中设置默认输入语言