跳至主要内容

Firefox 配置文件服务

您想使用特定扩展运行 Firefox 浏览器,或者需要设置一些首选项?Selenium 允许您通过将此配置文件作为 base64 字符串传递到所需功能中的 moz:firefoxOptions.profile 属性来使用 Firefox 浏览器的配置文件。这需要构建该配置文件并将其转换为 base64。此wdio 测试运行器服务将编译配置文件的工作从您的手中解放出来,并允许您从 wdio.conf.js 文件中轻松定义所需选项。

要查找所有可能的选项,请在您的 Firefox 浏览器中打开about:config,或访问mozillaZine网站以查找有关每个设置的完整文档。除此之外,您还可以定义在测试开始前应安装的已编译(例如 *.xpi)Firefox 扩展。

安装

最简单的方法是将 @wdio/firefox-profile-service 作为开发依赖项保存在您的 package.json 中,通过

npm install @wdio/firefox-profile-service --save-dev

有关如何安装 WebdriverIO 的说明,请参见此处

配置

通过将 firefox-profile 服务添加到您的服务列表中来设置您的配置文件。然后像这样在 firefoxProfile 属性中定义您的设置

// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // path to .xpi file
'/path/to/extensionB' // or path to unpacked Firefox extension
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriverio.node.org.cn',
legacy: true // only use for firefox <= 55
}]
],
// ...
};

如果您构建了一个自定义 Firefox 扩展,并希望将其安装到浏览器中,请确保将 'xpinstall.signatures.required': false` 设置为配置文件标志,因为 Firefox 扩展需要由Mozilla 签名

要使用自定义未签名的扩展,您还需要使用Firefox 开发者版,因为常规 Firefox 48 及更高版本不允许这样做

选项

包含所有设置,以键值对的形式呈现。您可以在 about:config 页面上找到所有可用的设置。

扩展

向浏览器会话添加一个或多个扩展。所有条目可以是 .xpi 文件的绝对路径,也可以是解压缩的 Firefox 扩展目录的路径。

类型:String[]
默认值:[]

配置文件目录

通过设置该配置文件的绝对路径,基于现有配置文件创建 Firefox 配置文件。

类型:String
默认值:null

代理

设置网络代理设置。参数 proxy 是一个哈希表,其结构取决于必填 proxyType 键的值,该键采用以下字符串值之一

  • direct - 直接连接(无代理)
  • system - 使用操作系统代理设置
  • pac - 基于 autoconfigUrl 键的值使用自动代理配置集
  • manual - 手动代理设置,使用以下键的值为不同的协议分别定义:ftpProxyhttpProxysslProxysocksProxy

类型:Object
默认值:null
示例

  • 自动代理

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'pac',
    autoconfigUrl: 'http://myserver/proxy.pac'
    }
    }]
    ],
    // ...
    };
  • 手动 HTTP 代理

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'manual',
    httpProxy: '127.0.0.1:8080'
    }
    }]
    ],
    // ...
    };
  • 手动 HTTP 和 HTTPS 代理

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'manual',
    httpProxy: '127.0.0.1:8080',
    sslProxy: '127.0.0.1:8080'
    }
    }]
    ],
    // ...
    };

旧版

如果您使用 Firefox v55 或更低版本,请将此标志设置为 true

类型:Boolean
默认值:false


有关 WebdriverIO 的更多信息,请参阅主页

欢迎!我怎样才能帮到您?

WebdriverIO AI Copilot