我试图找出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
答案 0 :(得分:1)
说到文档时,geb.driver被描述为here,geb.env被描述为here。
区别在于您可以使用geb.driver指定要使用的驱动程序,而使用geb.env可以指定要使用的环境,然后指定任何特定于环境的配置,即基本URL,等待,报告目录,如果你愿意,也可以是司机。
堆栈跟踪似乎与HtmlUnit驱动程序有关,而与Firefox驱动程序无关。我可以在你的邮件列表中看到你指定HtmlUnit驱动程序作为默认设置并且firefox驱动程序因为任何原因没有被选中,即使你使用geb.env = firefox并且你的GebConfig.groovy中有该环境的配置。我能想到的三个原因是:
将来如果你有Geb特定问题,你应该考虑将它们发布到Geb mailing list而不是Grails邮件列表,你更有可能在那里得到答案。