firefoxOptions
moz:firefoxOptions 功能 是一個名稱空間的特性集,專門用於 Firefox。它用於控制 Firefox 的行為,可以作為 alwaysMatch 的成員使用,也可以作為 firstMatch 條目之一的成員使用。
它用於定義控制 Firefox 啟動和執行方式的選項。
moz:firefoxOptions 是一個 JSON 物件,可以包含以下任何欄位
binary (字串)
要使用的自定義 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 (字串)
要用於 Firefox 例項的配置檔案目錄的 Base64 編碼 ZIP 檔案。這可用於例如安裝擴充套件或自定義證書,但對於設定自定義首選項,建議使用 prefs (首選項物件) 條目。
配置檔案是在系統臨時資料夾中建立的。當提供 profile 時,編碼的配置檔案也會提取到此位置。預設情況下,geckodriver 將在此位置建立一個新的配置檔案。
WebDriver 會話使用的有效配置檔案將返回給使用者,並在 新會話響應 中的 moz:profile 功能中返回。
要讓 geckodriver 獲取檔案系統上現有的配置檔案,請將 args 欄位設定為 {"args": ["-profile", "/path/to/your/profile"]}。請注意,如果您使用的是針對不同系統上的伺服器的遠端客戶端,則配置檔案必須已存在於目標系統上。
log (日誌物件)
要提高 geckodriver 和 Firefox 的日誌記錄詳細程度,您可以傳遞一個 log 物件,該物件可能看起來像 {"log": {"level": "trace"}} 以包含所有跟蹤級別日誌及以上級別日誌。
prefs (首選項物件)
首選項名稱到首選項值的對映,這些值可以是字串、布林值或整數。
Android
從 geckodriver 0.26.0 開始,如果要在 Android 上控制 Firefox 或嵌入 GeckoView 的應用程式,則存在其他功能。
androidPackage (字串,必需)
Firefox 的包名,例如 org.mozilla.firefox、org.mozilla.firefox_beta 或 org.mozilla.fennec(取決於釋出通道),或者嵌入 GeckoView 的應用程式的包名,例如 org.mozilla.geckoview_example。
androidActivity (字串,可選)
要啟動的活動的完全限定類名,例如 .GeckoViewActivity。如果未指定,將使用包的預設活動。
androidDeviceSerial (字串,可選)
要啟動應用程式的裝置的序列號。如果未指定且連線了多個裝置,則將返回錯誤。
androidIntentArguments (字串陣列,可選)
要啟動意圖的附加引數。在幕後,geckodriver 使用 Android am 啟動要測試的 Android 應用程式。給定的意圖引數將附加到 am start 命令。有關詳細資訊,請參閱 Android 的 意圖引數規範。這允許控制應用程式的啟動方式,以及包含用於啟用和停用功能的可選附加資訊。例如,要啟動檢視操作並在測試期間導航之前指定一個 URL,請包括
{
"androidIntentArguments": [
"-a",
"android.intent.action.VIEW",
"-d",
"https://example.com"
]
}
例如,要指定可以使用 android.content.Intent.getBooleanExtra 處理的布林值附加資訊,請包括
{
"androidIntentArguments": ["--ez", "customBooleanFlagName", "true"]
}
env (環境物件)
環境變數名稱到環境變數值的對映,兩者都必須是字串,並將轉發到 Android 裝置上執行的應用程式程序。
日誌物件
一個 JSON 物件,可以包含以下任何欄位
level (字串)
設定 geckodriver 和 Firefox 的詳細程度級別。可用級別為 trace、debug、config、info、warn、error 和 fatal。如果未定義,預設值為 info。該值不區分大小寫。
首選項物件
環境物件
一個 JSON 物件,每個條目對應要設定的一個環境變數。在桌面系統上,要測試的 Firefox 將在其環境中使用給定的變數啟動。在 Android 上,基於 GeckoView 的應用程式將在其配置 YAML 中將給定的變數新增到 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 功能列表
- 新會話 命令