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コンストラクタに起動ブラウザをセットして使用する方法をとるといい。
ちょっと残念。