功能 & ChromeOptions
功能是可用於自定義和配置 ChromeDriver 會話的選項。本頁記錄所有 ChromeDriver 支持的功能以及如何使用它們。
WebDriver 語言 API 提供了將功能傳遞給 ChromeDriver 的方法。確切的機制因語言而異,但大多數語言使用以下一種或兩種機制:
使用類。這得到 Java、Python 等的支持。ChromeOptions
使用類。Python、Ruby 等支持此功能。雖然它在 Java 中也可用,但它在 Java 中的用法被棄用。DesiredCapabilities
使用 Chrome 選項類
您可以創建 的實例,該實例具有設置 ChromeDriver 特定功能的便捷方法。然後,您可以將對象傳遞到 ChromeDriver 構造函數:ChromeOptionsChromeOptions
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
由於 Selenium 版本 3.6.0,Java 中的類也實現了該接口,允許您指定其他非 ChromeDriver 特有的 Web 驅動程序功能。ChromeOptionsCapabilities
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
使用所需功能
要使用所需功能,您需要知道功能的名稱及其所需的值類型。請參閱下面的完整列表。
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "--disable-web-security" ]})
driver = Selenium::WebDriver.for :remote, url: 'http://localhost:4444/wd/hub' desired_capabilities: caps
常見用例
使用自定義配置文件(也稱爲用戶數據目錄)
默認情況下,ChromeDriver 會爲每個會話創建新的臨時配置文件。有時您可能需要設置特殊首選項或完全使用自定義配置文件。如果是前者,您可以使用"chrome.prefs"功能(下文所述)來指定在 Chrome 啓動後將應用的首選項。如果是後者,您可以使用 Chrome 命令行開關告訴 Chrome 使用哪個配置文件:user-data-dir
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
只需將交換機設置爲某個新目錄即可運行 Chrome(在命令行上或通過 ChromeDriver),即可創建自己的自定義配置文件。如果路徑不存在,Chrome 將在指定位置創建新配置文件。然後,您可以根據需要修改配置文件設置,ChromeDriver 以後可以使用配置文件。打開瀏覽器中的chrome://version以查看 Chrome 正在使用哪些配置文件。user-data-dir
開始 Chrome 最大化
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
在非標準位置使用 Chrome 可執行文件
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
設置 Chrome 首選項
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
options.setExperimentalOption("prefs", prefs);
已識別功能列表
這是 ChromeDriver 支持的所有 Web 驅動程序標準功能的列表:
Proxy對象
請參閱http://code.google.com/p/selenium/wiki/DesiredCapabilities#Proxy_JSON_Object
loggingPrefs對象
請參閱https://code.google.com/p/selenium/wiki/DesiredCapabilities#JSON_object
chromedriver選項對象
這是所有 Chrome 特定所需功能的列表,這些功能都位於Chrome 選項詞典下。
如果可能,請使用ChromeOptions類,而不是直接指定這些課程。
名字 | 類型 | 默認 | 描述 |
---|---|---|---|
args | 字符串列表 | 啓動 Chrome 時要使用的命令行參數的列表。具有關聯值的參數應用"+"符號分隔(例如,[啓動-最大化’,“用戶-數據-dir_/tmp/temp_profile”*)。有關 Chrome 參數的列表,請參閱此處。 | |
binary | 字符串 | Chrome 可執行文件的路徑(在 Mac OS X 上,這應該是實際的二進制文件,而不僅僅是應用程序,例如,’/應用程序/Google Chrome.app/內容/MacOS/谷歌 Chrome’) | |
extensions | 字符串列表 | 啓動時要安裝的 Chrome 擴展程序列表。列表中的每個項目應爲基本-64編碼包裝的 Chrome 擴展機 (.crx) | |
localState | 字典 | 包含每個條目的字典,由首選項的名稱及其值組成。這些首選項將應用於用戶數據文件夾中的本地狀態文件。 | |
prefs | 字典 | 包含每個條目的字典,由首選項的名稱及其值組成。這些首選項僅應用於正在使用的用戶配置文件。有關示例,請參閱 Chrome 用戶數據目錄中的"首選項"文件。 | |
detach | 布爾 | 假 | 如果爲 false,則 Chrome 將在 ChromeDriver 終止時退出,無論會話是否退出。如果爲 true,則僅當會話退出(或關閉)時,Chrome 纔會退出。請注意,如果爲 true,並且會話未退出,ChromeDriver 將無法清理正在運行的 Chrome 實例正在使用的臨時用戶數據目錄。 |
debuggerAddress | 字符串 | 以 <主機名/ip:port>形式連接到的 Chrome 調試器服務器的地址,例如"127.0.0.0.1:38947" | |
excludeSwitches | 字符串列表 | Chrome 命令行列表將切換以排除默認情況下在啓動 Chrome 時通過的 ChromeDriver。不要用–.前綴開關 | |
minidumpPath | 字符串 | 目錄存儲 Chrome 迷你轉儲 。(僅在 Linux 上支持。 | |
mobileEmulation | 字典 | 具有"設備名稱"值或"設備指標"和"用戶代理"值的字典。有關詳細信息,請參閱移動仿真。 | |
perfLoggingPrefs | 字典 | 指定性能日誌記錄首選項的可選字典。有關詳細信息,請參閱下文。 | |
窗口類型 | 字符串列表 | 窗口句柄列表中將顯示的窗口類型的列表。要訪問 元素,請在此列表中包括"Webview"。 |
perfLoggingPrefs對象
perf、C、S.Prefs 字典具有以下格式(所有鍵都是可選的):
名字 | 類型 | 默認 | 描述 |
---|---|---|---|
enableNetwork | 布爾 | 真 | 是否從網絡域收集事件。 |
enablePage | 布爾 | 真 | 是否從主頁域收集事件。 |
traceCategories | 字符串 | (空) | 應爲其收集跟蹤事件的由逗號分隔的 Chrome 跟蹤類別字符串。未指定或空字符串禁用跟蹤。 |
bufferUsageReportingInterval | 正整數 | 1000 | DevTools 跟蹤緩衝區使用事件之間的請求毫秒數。例如,如果爲 1000,然後每秒一次,DevTools 將報告跟蹤緩衝區的已滿程度。如果報告指示緩衝區使用率爲 100%,則會發出警告。 |
返回的功能
這是所有特定於 Chrome 的返回功能的列表。(即,當您創建新會話時,ChromeDriver 返回什麼)
名字 | 類型 | 描述 |
---|---|---|
chrome.chromedriverVersion | 字符串 | 鉻驅動器版本 |
userDataDir | 字符串 | Chrome 正在使用的用戶數據目錄的路徑;注意,這是一個"鉻"字典內 |
ChromeDriver 服務器命令行參數
運行chromedriver – 幫助查看版本的命令行參數。