我正在使用gradle运行我的测试,gradle以下列方式指定JVM属性:
-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
答案 0 :(得分:1)
我有点惊讶你看到Setting JavaScript
打印出来了但是发生的事情是你的驱动程序关闭没有被调用,因为如果你使用geb.driver
系统属性那么Geb会创建驱动程序对你内心的基础。我建议您使用env在GebConfig.groovy
中创建驱动程序,或使用与geb.driver
不同的系统属性来请求使用给定的驱动程序impl并自行管理驱动程序。