如何在Linux中为headless Firefox安装自定义扩展?
Selenium的自动化测试非常棒,但是如何在预装扩展的无头Firefox上进行这些测试呢 我找到了Chrome,但没有找到Firefox如何在Linux中为headless Firefox安装自定义扩展?,firefox,selenium,codeception,headless,Firefox,Selenium,Codeception,Headless,Selenium的自动化测试非常棒,但是如何在预装扩展的无头Firefox上进行这些测试呢 我找到了Chrome,但没有找到Firefox 如何安装FF的扩展?您可以通过命令行全局安装附加组件(例如在我的Ubuntu上): 最好的办法是使用像Xvfb这样的东西。并在headless模式下运行firefox 现在您可以在Firefox上安装任何chrome扩展。这是解决办法。 我不知道您使用的语言,但是如果您手头有xpi文件,您可以安装(或者像这样启用它) 这是一种javascript方式,但所有
如何安装FF的扩展?您可以通过命令行全局安装附加组件(例如在我的Ubuntu上):
最好的办法是使用像Xvfb这样的东西。并在headless模式下运行firefox 现在您可以在Firefox上安装任何chrome扩展。这是解决办法。
我不知道您使用的语言,但是如果您手头有xpi文件,您可以安装(或者像这样启用它) 这是一种javascript方式,但所有selenium驱动程序的工作原理相同(请查看概要文件部分)
它已经没有头了。问题是如何安装扩展,而不是如何使其无头。这不是对这个问题的回答。从:“-安装全局扩展和-安装全局主题已从Gecko 1.9.2及以上版本中删除。”Gecko 1.9.2是Firefox 3.6。我们现在在Firefox45中。哦,谢谢。但我们已经迁移到了新的扩展类型(与chrome兼容),这是新FF版本所需要的。我现在会检查测试结果。无论如何,感谢链接到有关此API的更多详细信息。Chrome headless不支持扩展,请参阅
gksudo firefox -install-global-extension "path_to_your.xpi"
let binary;
switch (channel) {
case 'nightly':
binary = new firefox.Binary(firefox.Channel.NIGHTLY);
break;
case 'beta':
binary = new firefox.Binary(firefox.Channel.BETA);
break;
default:
binary = new firefox.Binary(firefox.Channel.RELEASE);
}
binary.addArguments('-headless');
let options = new firefox.Options();
options.setBinary(binary);
let profile = new firefox.Profile();
profile.addExtension(path.join(__dirname, 'uBlock0@raymondhill.net.xpi'));
options.setProfile(profile);
driver = new webdriver.Builder()
.forBrowser('firefox')
.setFirefoxOptions(options)
.build();