2012年5月3日木曜日

LoggingPreferences

selenium-webdriverにはorg.openqa.selenium.loggingというパッケージが存在する。
具体的にはその名の通り、ブラウザ自動実行時のログを出力する機能が実装されている。

その中にはLoggingPreferencesというクラスが存在し、その名の通り、ログ出力に関係する設定を行うことが出来る。 が、見たところ、Chrome、IE、Safariには対応しておらず、FireFoxでしか使用できない(なぜゆえに、、)

実装方法は

  DesiredCapabilities caps = DesiredCapabilities.firefox();
  LoggingPreferences logs = new LoggingPreferences();
  logs.enable(LogType.DRIVER, Level.INFO);
  caps.setCapability(CapabilityType.LOGGING_PREFS, logs);

  WebDriver driver = new FirefoxDriver(caps);

とすれば、ログが出力される。
「LogType.DRIVER」と記述しているが、LogType.DRIVERしか現在存在しないので、おまじない的に記述する。
下記はブラウザとの対応表(2.21)現在
ドライバ名称 実装可能かどうか 不可能な理由
FireFoxDriver -
ChromeFoxDriver DesiredCapabilitiesに対応するコンストラクタが非推奨
InternetExplorerDriver × 非推奨でないDesiredCapabilitiesに対応するコンストラクタが存在するものの、CapabilityType.LOGGING_PREFSに対応する設定が存在しても無視している(プロキシの設定しか見ていない、、、)
SafariDriver × DesiredCapabilitiesに対応するコンストラクタが存在すらしていない

なので、使用する際は各ブラウザのリッピングされた~Driverコンストラクタではなく、RemoteWebDriverコンストラクタに起動ブラウザをセットして使用する方法をとるといい。 ちょっと残念。

0 件のコメント:

コメントを投稿