跳到主要内容

Firefox 配置文件服务

你想要使用特定扩展运行Firefox浏览器或需要设置一些首选项?Selenium允许你通过将配置文件作为base64字符串传递给你的desired capabilities中的moz:firefoxOptions.profile属性来为Firefox浏览器使用配置文件。这需要构建该配置文件并将其转换为base64。这个为wdio测试运行器提供的服务帮你处理编译配置文件的工作,让你可以从wdio.conf.js文件中舒适地定义你想要的选项。

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

安装

最简单的方法是通过以下方式将@wdio/firefox-profile-service作为devDependency保留在你的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', // .xpi文件的路径
'/path/to/extensionB' // 或未打包的Firefox扩展的路径
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // 仅适用于firefox <= 55
}]
],
// ...
};

如果你已经构建了一个自定义Firefox扩展,并且想要在浏览器中安装它,请确保将'xpinstall.signatures.required': false设置为配置文件标志,因为Firefox扩展需要由Mozilla签名

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

选项

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

extensions

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

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

profileDirectory

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

类型:String
默认值:null

proxy

设置网络代理设置。参数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'
    }
    }]
    ],
    // ...
    };

legacy

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

类型:Boolean
默认值:false


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

Welcome! How can I help?

WebdriverIO AI Copilot