【问题标题】:How do I actually make Geb work with Grails 2.3.11?我如何真正让 Geb 与 Grails 2.3.11 一起工作?
【发布时间】:2019-02-08 15:55:57
【问题描述】:

前几天偶然发现了 Geb。我在 Grails 2.3.11 上。如何正确安装 Geb?我下载了 jar 文件并将它们包含在内,但是当我尝试运行我的代码时,我在 org.openqa.selenium.WebDriverException 上得到 ClassNotFoundException@

如果这很重要,我正在使用 IntelliJ IDEA。

图书馆

Gebtest.groovy

package gebish
import geb.Browser
class Gebtest {
    public static void main(String[] args) {
        println "Hi!"
        Browser.drive {
            go "http://gebish.org"

            assert title == "Geb - Very Groovy Browser Automation"
        }
    }
}

错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:344)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray$1.run(CallSiteArray.java:65)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray$1.run(CallSiteArray.java:62)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:62)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:159)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at gebish.Gebtest.main(Gebtest.groovy:6)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 11 more

【问题讨论】:

  • 使其工作的最简单方法是将其放入 conf 中的 deps 或插件中;否则,您还必须包含所有可传递的 deps - 仅 geb.jar 是不够的。
  • 无论哪种方式,我都会遇到相同的错误。这个版本的 Geb 对我的 Grails 版本来说太新了吗?

标签: selenium-webdriver grails automation geb grails-2.3


【解决方案1】:

我还使用 Grails 2.3.11 并让 GEB 运行。已经有一段时间了,所以我不确定到底需要什么,但这里有一些可能相关的 BuildConfig.groovy 部分:

def gebVersion = "0.13.1"
def webdriverVersion = "2.53.1"

dependencies {
  compile "org.codehaus.groovy:groovy-backports-compat23:2.4.13"
  test "org.gebish:geb-spock:${gebVersion}"
  test "org.seleniumhq.selenium:selenium-support:${webdriverVersion}"
  test "org.seleniumhq.selenium:selenium-chrome-driver:${webdriverVersion}"
  test "org.seleniumhq.selenium:selenium-firefox-driver:${webdriverVersion}"
  test "org.seleniumhq.selenium:selenium-ie-driver:${webdriverVersion}"

  test "org.spockframework:spock-grails-support:0.7-groovy-2.0"
}

plugins {
    test(":spock:0.7") {
        exclude "spock-grails-support"
    }
    test "org.grails.plugins:geb:${gebVersion}"
}

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 2015-08-10
    • 2013-10-31
    • 2018-08-23
    • 2011-06-07
    • 2015-08-14
    • 1970-01-01
    • 2010-10-01
    • 2016-05-28
    相关资源
    最近更新 更多