我正在学习来自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。
我似乎没有做错任何事情,但对于我的生活,我无法弄清楚为什么我会收到错误说"浏览器"未识别。
任何帮助???请!!
答案 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依赖项,最终修复了它。