首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在功能测试CI环境中加载跨平台的Firefox扩展?

如何在功能测试CI环境中加载跨平台的Firefox扩展?
EN

Stack Overflow用户
提问于 2015-04-16 05:16:19
回答 1查看 196关注 0票数 1

我正在尝试在Firefox中运行一些依赖于加载扩展的javascript代码的功能测试。在Chrome中,我可以通过告诉浏览器启动器使用--load-extension=<path>启动Chrome来做到这一点。我没有在Firefox中找到与此类似的东西,也没有其他明确的方法来做到这一点。

我的第一个尝试是尝试使用-profile <path>命令行开关使用自定义配置文件启动火狐,但当尝试对火狐配置文件扩展元数据进行反向工程时,它看起来有一些绝对路径会使配置文件不可移植(即我无法将其签入git并让其他开发人员能够克隆和运行测试,因为它将查找我的机器的路径)。

有没有人知道解决这个问题的好方法?如果不是每次运行测试时都被迫生成extensions.json,我会很高兴的。

无论如何,我在node.js中使用karma & karma-firefox-launcher运行我的功能测试

EN

回答 1

Stack Overflow用户

发布于 2015-04-17 04:39:10

在做了一些more research之后,我找到了一个解决方案。您可以编写脚本创建一个空目录(比如'tempProfile'),并创建以下内容:

tempProfile/prefs.js

代码语言:javascript
复制
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.enabledScopes", 15);

tempProfile/extensions/

请在此处放置您的分机。扩展名的文件名必须与扩展名的'id‘完全匹配,文件扩展名为.xpi。您可以通过提取.xpi (即unzip XXX.xpi)并使用文本编辑器打开install.RDF文件来发现扩展的'id‘。在Description标记下查找em:id标记。

例如,如果您的install.RDF文件如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
   <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>myCustomExt@suchandsuch</em:id>
    <em:version>1.0</em:version>
    <em:type>2</em:type>
    <em:bootstrap>true</em:bootstrap>
    <em:unpack>false</em:unpack>

    [...]
  </Description>
</RDF>

然后,您应该将扩展名的文件名设置为myCustomExt@suchandsuch.xpi

一旦设置好配置文件,就可以在Firefox -profile /path/to/tempProfile上运行Firefox了

无论如何,karmakarma-firefox-launcher已经在每次运行浏览器时为你自动完成了很多工作,所以我只是修补了这个项目,添加了对将扩展放在正确位置和设置必要的首选项的支持。我提交了一个PR,它是here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29661063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档