2012年3月27日火曜日

WebDriverとプロキシ

プロキシを通してWebDriverを起動して自動でWebモジュールを起動する方法の覚書

String PROXY = "localhost:8080";

【IE】

DesiredCapabilities capabilities = new DesiredCapabilities();
Proxy proxy = new Proxy();
proxy.setHttpProxy(PROXY);
capabilities.setCapability(CapabilityType.PROXY, proxy);

WebDriver driver = new InternetExplorerDriver(capabilities);

【Chrome】
ChromeOptions option = new ChromeOptions();
option.addArguments("--proxy-server=http://" + PROXY);
WebDriver driver = new ChromeDriver(option);

ChromeOptionsのaddArgumentsはその名前の通りchorome起動時の引数がそのまま使用可能
だから、
http://yuichi.tea-nifty.com/blog/2008/12/googlechrome-c0.html
とか
http://chrome.half-moon.org/43.html
とかがそのまま利用できる。

【FireFox】
FirefoxProfile profile = new FirefoxProfile();

Proxy proxy = new Proxy();
proxy.setHttpProxy(PROXY);
profile.setProxyPreferences(proxy);

WebDriver driver = new FireFoxDriver(profile);

か、もっと正確な設定をしたければ、
https://developer.mozilla.org/ja/Mozilla_Networking_Preferences

profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", 3128);
とかして設定するのもよい。
(もしくはProxyのsetProxyTypeメソッドを使うか)


こんな感じでOK。わざわざ起動前に設定を変更しなくても大丈夫。
これと組み合わせて、jscoverageと組み合わせ、カバレッジを取得したりできる。

0 件のコメント:

コメントを投稿