跳至主要內容

Firefox Profile 服務

您想要使用特定的擴充功能執行 Firefox 瀏覽器,或者需要設定幾個偏好設定嗎?Selenium 允許您將設定檔以 base64 字串形式傳遞至所需功能中的 moz:firefoxOptions.profile 屬性,來用於 Firefox 瀏覽器。這需要建構該設定檔並將其轉換為 base64。這個用於 wdio 測試執行器的服務,可讓您從 wdio.conf.js 檔案中舒適地定義所需的選項,免去編譯設定檔的繁瑣工作。

要尋找所有可能的選項,請在 Firefox 瀏覽器中開啟 about:config,或前往 mozillaZine 網站,以尋找關於每個設定的完整文件。此外,您還可以定義已編譯(為 *.xpi)的 Firefox 擴充功能,這些擴充功能應在測試開始之前安裝。

安裝

最簡單的方式是將 @wdio/firefox-profile-service 作為您的 package.json 中的 devDependency,透過

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.dev.org.tw',
legacy: true // only use for firefox <= 55
}]
],
// ...
};

如果您已建構想要在瀏覽器中安裝的自訂 Firefox 擴充功能,請務必將 'xpinstall.signatures.required': false 設定為設定檔標記,因為 Firefox 擴充功能必須由 Mozilla 簽署

若要使用自訂的未簽署擴充功能,您還需要使用Firefox 開發人員版本,因為一般的 Firefox 48 及更新版本不允許這樣做

選項

包含所有設定為鍵值對。您可以在 about:config 頁面上找到所有可用的設定。

擴充功能

將一個或多個擴充功能新增至瀏覽器工作階段。所有項目可以是 .xpi 檔案的絕對路徑,也可以是解壓縮的 Firefox 擴充功能目錄的路徑。

類型:String[]
預設值:[]

profileDirectory

透過設定該設定檔的絕對路徑,根據現有設定檔建立 Firefox 設定檔。

類型:String
預設值:null

proxy

設定網路 Proxy 設定。參數 proxy 是一個雜湊,其結構取決於強制 proxyType 鍵的值,該鍵採用下列其中一個字串值

  • direct - 直接連線(無 Proxy)
  • system - 使用作業系統 Proxy 設定
  • pac - 使用基於 autoconfigUrl 鍵值的自動 Proxy 設定組
  • manual - 使用下列金鑰的值,針對不同通訊協定個別定義的手動 Proxy 設定:ftpProxyhttpProxysslProxysocksProxy

類型:Object
預設值:null
範例

  • 自動 Proxy

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

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

    // 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 的更多資訊,請參閱首頁

歡迎!我能如何協助您?

WebdriverIO AI Copilot