Geb groovy简单设置,得到NoClassDefFoundError

时间:2014-09-10 02:43:04

标签: groovy webdriver geb groovy-eclipse

我正在学习来自Java背景的Geb(和Groovy),我觉得我理解Geb是如何工作的,但是我甚至没能让最简单的配置工作。
基本上,我收到以下错误:

  

抓住:java.lang.NoClassDefFoundError:geb / error / GebException
      java.lang.NoClassDefFoundError:geb / error / GebException
        在DriveIt.run(DriveIt.groovy:15)
      引起:java.lang.ClassNotFoundException:geb.error.GebException
        ......还有1个

我的课很简单:

    import groovy.grape.Grape  
    // I have these out of desperation  
    Grape.grab(group:"org.gebish", module:"geb-core", version:"0.9.3")
    Grape.grab(group:"org.seleniumhq.selenium", module:"selenium-firefox-driver", version:"2.41.0")
    Grape.grab(group:"org.seleniumhq.selenium", module:"selenium-support", version:"2.41.0")

// basic imports here
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.firefox.*;
    import geb.Browser;

    Browser.drive {
        go "http://www.google.com"   
    }

使用这个简单的代码,我得到了" Browser.drive"线。

这是我的GebConfig.groovy文件的样子:

import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.firefox.FirefoxDriver

driver = {
    def driver = new ChromeDriver()
    driver
}

baseUrl = 'http://localhost:8080/'
reportsDir = 'target/geb-reports'

还有一点,我正在使用Eclipse,我也确实在类路径中正确导入了geb-code jar。
我似乎没有做错任何事情,但对于我的生活,我无法弄清楚为什么我会收到错误说"浏览器"未识别。

任何帮助???请!!

3 个答案:

答案 0 :(得分:0)

您可以使用命令grape install org.gebish geb-core 0.9.3通过命令行下载所需的包。

答案 1 :(得分:0)

您需要使用@Grab作为注释才能正常工作。请参阅:http://groovy.codehaus.org/Grape

另外,您可以考虑查看this example project以了解如何将Geb与Gradle一起使用 - 从长远来看,使用构建系统来解析依赖关系可能是最明智的事情。

答案 2 :(得分:0)

出于某种原因,这些解决方案都没有真正起作用。我改为使用Maven重新创建一个新的Groovy项目,它自动下载了所有依赖项。然后我添加了geb-core 0.9.3依赖项,最终修复了它。