統合テストに Selenium-serenity を使用しています。デフォルトでは、セレンは WebDriver 用に FirefoxDriver を統合しますが、今私がやろうとしているのは PhantomJS を使用することです。初期化後にドライバを適切に設定する方法が今のところ見つかりませんでした。
これまでのところ、pageObject の getDriver() メソッドをオーバーライドして、phantomJs webDriver を返しました。
private static WebDriver webDriver;
@Override
public WebDriver getDriver() {
if (webDriver == null) {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/pabloperezgarcia/Downloads/phantomjs");
webDriver = new PhantomJSDriver(caps);
setDriver(webDriver);
}
return webDriver;
}
しかし、問題は、WebDriver に対するすべてのアクションが他のページに反映されないことです。これは、もちろん、単一の webDriver のみを返し、super.getDriver() を返していないためです。
私の質問は、新しいインスタンスである複数のページオブジェクト間で状態を共有するように、セレニティの webdriver を適切に設定するにはどうすればよいかということです。
Firefox では完璧に動作するようです。