我正在使用 Selenium-serenity 进行集成测试。默认情况下,selenium 为 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 on serenity 以在多个页面对象之间共享状态,这些对象是新实例。
使用 Firefox 似乎可以完美运行。