Grails geb.env和geb.driver之间的差异

Grails geb.env和geb.driver之间的差异,grails,functional-testing,spock,geb,Grails,Functional Testing,Spock,Geb,我试图找出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'

我试图找出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) 
我找不到关于它们的任何具体文件。我可以理解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用户邮件列表中也问过同样的问题


对于文档,描述了geb.driver和geb.env

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

stacktrace似乎与HtmlUnit驱动程序有关,而与Firefox驱动程序无关。我可以在您发送给列表的邮件中看到,您指定HtmlUnit驱动程序为默认驱动程序,而firefox驱动程序由于任何原因都没有被选中,即使您使用了geb.env=firefox,并且您的GebConfig.groovy中有该环境的配置。我能想到的三个原因是:

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

将来如果你有GEB特定的问题,你应该考虑把它们寄到GRAIUS邮件列表中,你更有可能得到答案。

这是因为你提到的第三个问题。非常感谢你的帮助。