簡體   English   中英

在Serenity上設置PhantomJS webDriver

[英]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.driverwebdriver.provided.typewebdriver.provided.mydriverthucydides.driver.capabilities

寧靜文檔: http : //thucydides.info/docs/serenity-staging/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM