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 設定:ftpProxy
、httpProxy
、sslProxy
、socksProxy
類型: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 的更多資訊,請參閱首頁。