2

我正在学习来自 Java 背景的 Geb(和 Groovy),我觉得我了解 Geb 的工作原理,但我什至无法让最简单的配置工作。
基本上,我收到以下错误:

捕获:java.lang.NoClassDefFoundError: geb/error/GebException
java.lang.NoClassDefFoundError: geb/error/GebException
at 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。
我似乎没有做错任何事情,但是对于我的一生,我无法弄清楚为什么我会收到错误消息,说“浏览器”无法识别。

有什么帮助???请!!

4

3 回答 3

0

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

此外,您可能会考虑查看此示例项目以了解如何将 Geb 与 Gradle 一起使用 - 从长远来看,使用构建系统来解决您的依赖关系可能是最明智的做法。

于 2014-09-11T03:58:55.987 回答
0

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

于 2014-09-12T18:02:33.943 回答
0

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

于 2014-09-10T07:27:36.247 回答