Grails geb.env和geb.driver之间的差异
我试图找出geb.driver选项和geb.env之间的区别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'
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邮件列表中,你更有可能得到答案。
这是因为你提到的第三个问题。非常感谢你的帮助。