firefoxOptions
moz:firefoxOptions 功能集是一組特定於 Firefox 的名稱空間功能集。它用於控制 Firefox 的行為,並且可以用作 alwaysMatch 的成員,或用作 firstMatch 條目之一的成員。
它用於定義控制 Firefox 如何啟動和執行的選項。
moz:firefoxOptions 是一個 JSON 物件,可能包含以下任何欄位:
binary (string)
要使用的自定義 Firefox 二進位制檔案的絕對路徑。
在 macOS 上,您可以提供指向應用程式包的路徑,即 /Applications/Firefox.app,或者指向該包內可執行二進位制檔案的絕對路徑,例如 /Applications/Firefox.app/Contents/MacOS/firefox-bin。
如果未定義,geckodriver 將嘗試推斷當前系統上 Firefox 的預設位置。Firefox 的預設位置是:
| 系統 | 預設位置 |
|---|---|
| macOS |
|
| Linux BSD |
系統路徑中找到的第一個 % which firefox /usr/bin/firefox |
| Windows |
來自 Windows 系統登錄檔
|
args (字串陣列)
要傳遞給 Firefox 二進位制檔案的命令列引數。如果需要,這些引數必須包含前導連字元 (-),例如 ["-headless"]。
要讓 geckodriver 獲取本地檔案系統上的現有 配置檔案,您可以傳遞 ["-profile", "/path/to/profile"]。但是,如果需要將配置檔案傳輸到目標機器,建議使用 profile 條目。
profile (string)
用於 Firefox 例項的配置檔案目錄的 Base64 編碼的 ZIP 檔案。這可用於安裝擴充套件或自定義證書等,但對於設定自定義首選項,我們建議改用 prefs (首選項物件) 條目。
配置檔案將在系統的臨時資料夾中建立。當提供 profile 時,編碼的配置檔案也會在此位置提取。預設情況下,geckodriver 將在此位置建立一個新配置檔案。
WebDriver 會話使用的有效配置檔案將作為 moz:profile 功能在 新會話響應 中返回給使用者。
要讓 geckodriver 獲取檔案系統上的現有配置檔案,請將 args 欄位設定為 {"args": ["-profile", "/path/to/your/profile"]}。請注意,如果您使用指向不同系統上伺服器的遠端客戶端,則配置檔案必須已存在於目標系統上。
log (Log 物件)
為了增加 geckodriver 和 Firefox 的日誌詳細程度,您可以傳遞一個 log 物件,例如 {"log": {"level": "trace"}},以包含所有跟蹤級別及以上的日誌。
prefs (Preferences 物件)
首選項名稱到首選項值的對映,首選項值可以是字串、布林值或整數。
Android
從 geckodriver 0.26.0 開始,如果需要在 Android 上控制 Firefox 或嵌入 GeckoView 的應用程式,則存在其他功能。
androidPackage (string, required)
Firefox 的包名稱,例如 org.mozilla.firefox、org.mozilla.firefox_beta 或 org.mozilla.fennec(取決於發行渠道),或者嵌入 GeckoView 的應用程式的包名稱,例如 org.mozilla.geckoview_example。
androidActivity (string, optional)
要啟動的活動的完全限定類名,例如 .GeckoViewActivity。如果未指定,將使用包的預設活動。
androidDeviceSerial (string, optional)
要在其上啟動應用程式的裝置的序列號。如果未指定且連線了多個裝置,將返回錯誤。
androidIntentArguments (字串陣列, optional)
用於啟動意圖的引數。底層,geckodriver 使用 Android am 來啟動被測的 Android 應用程式。給定的意圖引數將附加到 am start 命令。有關詳細資訊,請參閱 Android 的 意圖引數規範。這允許控制應用程式的啟動方式,幷包含用於啟用和停用功能的可選 extras。例如,要在導航到 URL 之前使用檢視操作啟動並指定 URL,以便作為測試的一部分,請包含:
{
"androidIntentArguments": [
"-a",
"android.intent.action.VIEW",
"-d",
"https://example.com"
]
}
例如,要指定一個可以透過 android.content.Intent.getBooleanExtra 處理的布林 extra,請包含:
{
"androidIntentArguments": ["--ez", "customBooleanFlagName", "true"]
}
env (Env 物件)
環境變數名稱到環境變數值的對映,兩者都必須是字串,這些變數將被轉發到 Android 裝置上執行的應用程式程序。
Log 物件
一個 JSON 物件,可能包含以下任何欄位:
level (string)
設定 geckodriver 和 Firefox 的詳細程度。可用級別包括 trace、debug、config、info、warn、error 和 fatal。如果未定義,預設為 info。該值不區分大小寫。
Preferences 物件
一個 JSON 物件,每個條目代表一個要設定的首選項。該首選項將在啟動 Firefox 之前寫入 配置檔案。可透過在 Firefox 瀏覽器中訪問“about:config”來獲取可用首選項的完整列表。其中一些記錄在此 原始檔 中。
首選項物件的示例
{
"dom.ipc.processCount": 8,
"javascript.options.showInConsole": false
}
Env 物件
一個 JSON 物件,每個條目代表一個要設定的環境變數。在桌面平臺上,被測 Firefox 將使用給定變數在其環境中啟動。在 Android 平臺上,基於 GeckoView 的應用程式將在其配置檔案 YAML 的 env 塊中新增給定變數。
Env 物件的示例
{
"MOZ_LOG": "nsHttp:5",
"MOZ_LOG_FILE": "/mnt/sdcard/log"
}
示例
以下是一個完整的 功能物件 示例,該物件選擇一個特定的 Firefox 二進位制檔案,並使用來自檔案系統的預備 配置檔案 以 無頭模式 執行。它還透過首選項增加 IPC 程序的數量,關閉控制檯中的 Chrome 錯誤/警告,並啟用更詳細的日誌記錄。
{
"capabilities": {
"alwaysMatch": {
"moz:firefoxOptions": {
"binary": "/usr/local/firefox/bin/firefox",
"args": ["-headless", "-profile", "/path/to/my/profile"],
"prefs": {
"dom.ipc.processCount": 8,
"javascript.options.showInConsole": false
},
"log": { "level": "trace" },
"env": {
"MOZ_LOG": "nsHttp:5",
"MOZ_LOG_FILE": "/path/to/my/profile/log"
}
}
}
}
}
moz:firefoxOptions 必須如上所示放置在 alwaysMatch 中,或者放在 firstMatch 功能物件 之一中,如此處所示:
{
"capabilities": {
"firstMatch": [{ "moz:firefoxOptions": {} }]
}
}
Android
這將在執行在主機上的第一個 Android 模擬器上執行已安裝的 GeckoView 示例應用程式。
{
"capabilities": {
"alwaysMatch": {
"moz:firefoxOptions": {
"androidPackage": "org.mozilla.geckoview_example",
"androidActivity": "org.mozilla.geckoview_example.GeckoView",
"androidDeviceSerial": "emulator-5554",
"androidIntentArguments": ["-d", "http://example.org"],
"env": {
"MOZ_LOG": "nsHttp:5",
"MOZ_LOG_FILE": "/mnt/sdcard/log"
}
}
}
}
}
另見
- geckodriver 關於支援的 Firefox 功能的文件。
- Chrome 特定的 WebDriver 功能 (
goog:chromeOptions) - WebDriver 功能列表
- 新會話 命令