2012年7月29日日曜日

IEDriverServerの起動設定


2.25からIE起動時に詳細な設定が出来るようになった。

今までが

WebDriver driver  = new InternetExplorerDriver();
WebDriver driver  = new InternetExplorerDriver(DesiredCapabilities.internetExplorer());
こんな感じで

2.25以降が

WebDriver driver  = new InternetExplorerDriver(InternetExplorerDriverService.createDefaultService());
WebDriver driver  = new InternetExplorerDriver(InternetExplorerDriverService.createDefaultService(),DesiredCapabilities.internetExplorer());
こんな感じ。

でもこれだけだと恩恵受けられない。いい感じにするには

InternetExplorerDriverService is = new InternetExplorerDriverService.Builder()
 .usingPort(0)//0ポートを使用してみたり
 .usingAnyFreePort()//やっぱりあいてるポート使ってみたり
 //ドライバーを指定してみたり
  .usingDriverExecutable(new File("C:\\IEDriverServer"))                          //ログファイルを仕込んでみたり    
  .withLogFile(new File("C:\\IELOG.log"))
  //ログレベルしこんでみたりして
  .withLogLevel(InternetExplorerDriverLogLevel.DEBUG).
  .build();

  WebDriver driver  = new InternetExplorerDriver( is ));//起動してみたりする。

こんな感じ。出てくるログの内容はしらない。出してみた人は、どんなんでるのかおしえてくんろ。

2012年7月20日金曜日

Androidに特化した(ドヤッ


FireFoxの14が動作しない現象に悩まされたと思ったら、あっけなくseleniumが
対応して、はや2日。
やんごとなき更新内容ログを見てみると、selenium2.25はFireFox17まで
対応しているとのこと。
未来を生きるgoogleさまは違います。

FireFox14はAndroidに特化しているらしい、その影響か、FirefoxDriverにも
大きな仕様変更が。
まぁその辺は後ほど。

とりあえず、2.25の最大の機能は最新版のFireFoxが動作するところにある。
まぁ、機能といっていいのか、当たり前のことだけれども。

その他細かな修正がいろいろと。

1.IEDriverServerのログ出力機能がついた
2.InternetExplorerDriverにInternetExplorerDriverServiceを指定できる
コンストラクタ追加されて、いろいろ細かく設定できるようになった
3.nativeEvents設定なるものが追加された
4.FirefoxDriverにCapabilitiesが複数指定できるようになった(なんで?)
5.unhandled alerts(アドオンが発する予期せぬエラー的な、、)の制御が出来るようになった
6.BASIC認証とDIGEST認証がどうのこうのといいだした。その影響で出来たと思われる
UserAndPasswordっていう謎の構造体クラスが出現した。

上に書いたものについてはおいおい実装方法なども紹介していきたい。


後はどうでもいいけど
SeleneseCommandExecutorのブラウザ判定が変更したり、
「JavascriptExecutor#executeAsyncScriptに変な引数わたすな!」って書いてあったり、
「WebElement#clearにマウスやキーボードイベントを発生させることは期待するな。
backspaceやtabのsendKeysを考慮しろ」って書いてあったり、
FatalChromeException・InternetExplorerElement・FirefoxWebElementがもうすぐなくなったり、
SafariDriverにようやくCapabilitiesが指定できるようになったり、
「driver.manage().window().setSize(new Dimension(400,400))」で落ちるバグがなくなったり、
firefoxのsubmitが安定したり、
WebElement#getCssValueに注意書き(仕様変更?)があって、これからはrgbaの時代だぜって
いってたり(そのおかげでまさかのColorクラスに大幅な仕様変更)、

AlertクラスにauthenticateUsingっていうよくわからないメソッド追加されてたり、
俺は2.26からはIEDriverServer.exeを使用しないで起動することをやめるぞーーーーっていってたり、
ChromeDriverServiceでchromedriverの保持方法変わったりとか。

おなかいっぱいですわ。