0

次の方法で JVM プロパティを指定している gradle を使用してテストを実行しています。

-Dgeb.env=dev -Dgeb.driver=org.openqa.selenium.htmlunit.HtmlUnitDriver

これにより、ドライバーが設定され、Geb 構成スクリプトで環境が構成されます。環境プロパティに指定してHtmlUnitのJavaScriptを有効にしたい。setup()より一般的には、構成スクリプトでドライバーを上書きしたい (すべてのテストのブロックでドライバーを設定することに興味がない)

次のコード スニペットを Geb 構成スクリプトに入れてみました。

if (System.getProperty("geb.driver")=="org.openqa.selenium.htmlunit.HtmlUnitDriver") {
    driver = {
        println "Setting JavaScript"
        def driver = new HtmlUnitDriver()
        driver.setJavascriptEnabled(true)
        driver
    }
}

これによりメッセージが出力されますが、テストは次の理由で失敗します

java.lang.UnsupportedOperationException: Javascript is not enabled for this HtmlUnitDriver instance
4

1 に答える 1

1

印刷物が表示されていることに少し驚いていますが、システム プロパティを使用すると、それに基づいて Geb が内部的にドライバーを作成するSetting JavaScriptため、ドライバー クロージャーが呼び出されません。geb.driverenv を使用してドライバーを作成するか、特定のドライバー impl を使用して自分でドライバーの作成を管理するように要求するのではGebConfig.groovyなく、別のシステム プロパティを使用することをお勧めします。geb.driver

于 2014-11-13T09:00:50.607 に答える