我试图找出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

最佳答案

对于文档,geb.driver描述为here,而geb.env描述为here

区别在于,使用geb.driver只能指定要使用的驱动程序,而使用geb.env可以指定要使用的环境,然后指定任何特定于环境的配置,即基本url,waiting,reports dir以及司机,如果你愿意。

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

您尚未在BuildConfig.groovy中指定对Firefox驱动程序jar的依赖项 忘了在您的GebConfig.groovy中导入FirefoxDriver类的

  • 您在命令中的错误位置指定了geb.env属性-您必须在grails之后立即指定它(即grails -Denv.geb = firefox测试功能:),否则它将无法使用

  • 将来,如果您有关于Geb的特定问题,应考虑将其发布到Geb mailing list而不是Grails邮件列表中,您更有可能在此处获得答案。

    关于grails - geb.env和geb.driver之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13351510/

    10-11 02:56