selenium2讀書筆記(三)Capabilities & ChromeOptions

https://sites.google.com/a/chromium.org/chromedriver/capabilities

Capabilities are options that you can use to customize and configure a ChromeDriver session. This page documents all ChromeDriver supported capabilities and how to use them.

有2種方法來指定capabilities.
1.使用ChromeOptions class.
2.如果客戶端的library沒有ChromeOptions class (ruby client沒有),可以通過DesiredCapabilities 來直接指定capabilities.

一、用ChromeOptions class
實例化一個ChromeOptions, 之後直接傳入ChromeOptions到ChromeDriver constructor.

//實例化一個ChromeOptions
ChromeOptions options = new ChromeOptions();
//安裝一個插件
options.addExtensions(new File("/path/to/extension.crx"));
//傳入到ChromeDriver
ChromeDriver driver = new ChromeDriver(options);

或者

可以把Options添加到一個已存在的DesiredCapabilities對象上。當你需要指定不僅是ChromeDriver 還包括其他WebDriver的capabalities,這樣就比較方便了。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

// 添加 WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
capabilities.setCapability("proxy", proxy);

// 添加ChromeDriver-specific capabilities through ChromeOptions.
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

//傳入到ChromeDriver
ChromeDriver driver = new ChromeDriver(capabilities);

二、直接用DesiredCapabilities
下面的代碼,ChromeOptions直接使用了DesiredCapabilities,這就需要大家瞭解各種Capabilities的名字和值類型了。

Map<String, Object> chromeOptions = new Map<String, Object>();
chromeOptions.put("binary", "/usr/lib/chromium-browser/chromium-browser");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(capabilities);

三、常見的使用案例
Use custom profile (also called user data directory)
ChromeDriver會默認爲每個Session創建一個新的緩存文件。
如果你需要設置特殊的preferences—-可以用“Chrome.prefs”capability 來自定義。
如果只需要使用默認的preferences—-可以用user-data-dir命令行,來告訴chrome用哪個profile

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

打開最大化Chrome

ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");

Using a Chrome executable in a non-standard location

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");

Set a Chrome preference

ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
options.setExperimentalOption("prefs", prefs);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章