[英]Set PhantomJS webDriver on Serenity
我正在使用Selenium-serenity進行集成測試。 默認情況下,硒將FirefoxDriver與WebDriver集成在一起,但是現在我要使用的是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()。
我的問題是如何正確設置網絡驅動程序的寧靜狀態,以便在多個頁面對象(它們是新實例)之間共享狀態。
使用Firefox似乎完美。
您需要將webdriver.driver
屬性設置為phantomjs。 寧靜時,可以通過命令行傳遞,在屬性文件中定義或在代碼中注釋。 您可能還需要通過系統屬性-Dphantomjs.binary.path=path/to/driver
指定phantomjs驅動程序的位置。
您提到您正在使用注釋,是否嘗試過@Managed(driver="phantomjs")
?
您也可以通過命令行傳遞(在您的IDE中,它將處於運行配置中) -Dwebdriver.driver=phantomjs
請注意,如果您正在遠程運行測試,則可能還需要將phantomjs.webdriver
屬性設置為要在其上運行的端口。
您還可以通過Maven設置屬性:
<properties>
<webdriver.driver>phantomjs</webdriver.driver>
</properties>
然后在您的故障安全插件中定義系統屬性
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18</version>
<configuration>
<systemProperties>
<webdriver.driver>${webdriver.driver}</webdriver.driver>
</systemProperties>
</configuration>
</plugin>
如果要定義自定義驅動程序提供程序,則需要確保實現DriverSource
並定義以下屬性webdriver.driver
, webdriver.provided.type
, webdriver.provided.mydriver
, thucydides.driver.capabilities
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.