0

我试图找出 geb.driver 选项与 geb.env 之间的区别。

我找不到关于它们的任何具体文档。我可以理解 geb.env 类似于 grails.env ,除了 geb env 是在 GebConfig.groovy 中定义的。

那么,为什么我们需要geb.driver。更令人困惑的是,如果我指定 geb.driver,但在使用 geb.env 时出现错误,我的功能测试用例工作正常。

Cannot find window: _PPIdentityWindow_ 
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 22:18:01' 
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.5', java.version: '1.6.0_35' 
Driver info: driver.version: unknown 
org.openqa.selenium.NoSuchWindowException: Cannot find window: _PPIdentityWindow_ 
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 22:18:01' 
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.5', java.version: '1.6.0_35' 
Driver info: driver.version: unknown 
        at org.openqa.selenium.htmlunit.HtmlUnitDriver$HtmlUnitTargetLocator.window(HtmlUnitDriver.java:943) 
        at geb.Browser.switchToWindow(Browser.groovy:458) 
        at geb.Browser.withWindow(Browser.groovy:470) 
        at geb.spock.GebSpec.methodMissing(GebSpec.groovy:51) 

非常感谢任何帮助。我也在 grails 用户邮件列表中问过同样的问题。

http://grails.1312388.n4.nabble.com/Difference-between-geb-driver-and-geb-env-td4637641.html

4

1 回答 1

1

说到文档,这里描述了 geb.driver ,这里描述了geb.env 。

不同之处在于您可以使用 geb.driver 只能指定要使用的驱动程序,而使用 geb.env 您可以指定要使用的环境,然后指定任何特定于环境的配置,即基本 url、等待、报告目录以及司机,如果你愿意。

堆栈跟踪似乎与 HtmlUnit 驱动程序而不是 Firefox 驱动程序有关。我可以在您的邮件中看到您将 HtmlUnit 驱动程序指定为默认值,并且即使您使用了 geb.env=firefox 并且在您的 GebConfig.groovy 中有该环境的配置,也没有选择 firefox 驱动程序。 . 我能想到的三个原因是:

  • 您没有在 BuildConfig.groovy 中指定对 firefox 驱动程序 jar 的依赖
  • 您忘记在 GebConfig.groovy 中导入 FirefoxDriver 类
  • 您在命令的错误位置指定了 geb.env 属性 - 您必须在 grails 之后直接指定它(即 grails -Denv.geb=firefox test functional:) 否则它不会被拾取

将来,如果您有 Geb 特定的问题,您应该考虑将它们发布到Geb 邮件列表而不是 Grails 邮件列表,您更有可能在那里得到答案。

于 2012-12-08T00:30:51.443 回答