我是 Geb 的新手,并试图在进一步使用之前进行快速测试以评估它。由于代理权限等,我想在不使用 Grape 的情况下这样做。因此,我尝试手动下载所需的 jar,并尝试在命令行上指定它们。
但是,这样做时,我会收到以下未找到 WebDriverException 的类:
C:\geb-test>groovy -cp geb-core-0.9.2.jar;selenium-htmlunit-driver-2.35.0.jar;selenium-support-2.35.0.jar GoogleTest
Caught: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
at GoogleTest.run(GoogleTest.groovy:3)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
... 1 more
C:\geb-test>
我需要额外的罐子吗?如果有,有哪些?我尝试了其他一些但没有任何乐趣 - 正如我注意到 WebDriverException 在 selenium-api-2.35.0.jar 中,但它没有任何区别。
因此,以下是从一些版本信息开始的详细信息:
- Groovy 版本:2.1.7 JVM:1.7.0_40 供应商:Oracle Corporation 操作系统:Windows 7
首先,我使用了简单的 geb 内联脚本示例,我将其放入名为 GoogleTest.groovy 的文件中:
import geb.Browser
Browser.drive {
go "http://google.com/ncr"
// make sure we actually got to the page
assert title == "Google"
// enter wikipedia into the search field
$("input", name: "q").value("wikipedia")
// wait for the change to results page to happen
// (google updates the page dynamically without a new request)
waitFor { title.endsWith("Google Search") }
// is the first link to wikipedia?
def firstLink = $("li.g", 0).find("a.l")
assert firstLink.text() == "Wikipedia"
// click the link
firstLink.click()
// wait for Google's javascript to redirect to Wikipedia
waitFor { title == "Wikipedia" }
}
然后根据geb 安装说明,我确保我有 @Grab 注释中提到的罐子。这导致我的测试目录具有以下文件:
07/11/2013 10:46 <DIR> .
07/11/2013 10:46 <DIR> ..
06/11/2013 14:51 460,165 geb-core-0.9.2.jar
06/11/2013 15:13 711 GoogleTest.groovy
06/11/2013 14:55 56,189 selenium-htmlunit-driver-2.35.0.jar
06/11/2013 14:54 130,535 selenium-support-2.35.0.jar
4 File(s) 647,600 bytes
然后为了完整起见,我尝试上述命令行执行:
C:\geb-test>groovy -cp geb-core-0.9.2.jar;selenium-htmlunit-driver-2.35.0.jar;selenium-support-2.35.0.jar GoogleTest
Caught: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
at GoogleTest.run(GoogleTest.groovy:3)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
... 1 more
C:\geb-test>
我开始怀疑问题是否是使用 Groovy '-cp' 命令行的多个 jars。我现在正试图将罐子放在 ${user.home}.groovy\lib 目录中。但后来我得到了一个未定义的 GebException 类。也许你必须使用 Grape 才有机会让它发挥作用。:/ 让我知道。