【发布时间】:2015-11-18 05:43:39
【问题描述】:
我正在使用 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 似乎可以完美运行。
【问题讨论】:
-
您如何管理您的资产?您是否尝试过将 phantomjs 作为 webdriver.driver 属性的值传递?您是在本地还是远程运行测试?
-
将 Serenity 与默认 webDriver(Firefox) 一起使用我没有创建任何属性文件,只是在我的代码上添加注释,一切正常
标签: java selenium-webdriver phantomjs serenity-bdd cucumber-serenity