为什么我的 Geb 测试 return "failed to create driver from callback" 即使在更新我在 Grails 中的 Selenium 依赖项之后?

Why does my Geb test return "failed to create driver from callback" even after updating my Selenium dependency in Grails?

我引用了之前的帖子 (geb.driver.DriverCreationException: failed to create driver from callback) - 但仍有问题。

我正在尝试 运行 在 Grails 2.4.3 下进行 Geb 功能测试,我将我的 Selenium 支持依赖项设置为版本 2.42.2。我也用 2.43.1 和 2.45.0 试过了。如果我尝试使用 Selenium 2.42.2 或 2.43.1,Geb 会停滞不前,如果我使用 2.45.0,它会彻底崩溃。

这些是我得到的错误:

  1. 如果我尝试 Selenium 支持 2.42.2 或 2.43.1,我会收到此错误:geb.driver.DriverCreationException:无法从回调创建驱动程序

  2. 如果我尝试 Selenium 支持 2.45.0 - 我的浏览器将尝试 运行 Geb 测试,但会 return 出现 "The Page Is Not Redirectly Properly" 错误。

在我的 Grails BuildConfig.groovy 中,这是我现在设置的 selenium 依赖项:

 def seleniumVersion = "2.45.0"

  dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
        // runtime 'mysql:mysql-connector-java:5.1.29'
        // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
        compile 'org.dbunit:dbunit:2.5.0'
        test "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
        test "org.gebish:geb-spock:$gebVersion"
        compile "org.springframework:spring-orm:4.0.5.RELEASE"
        // need for select objects
        test "org.seleniumhq.selenium:selenium-support:2.45.0"

    }

我让 Geb 使用以下属性:

gebVersion = '0.10.0'
seleniumVersion = '2.43.1'

关于一些额外的信息,我有一个 Gradle 项目仅用于 运行 Geb 测试,这是我的 build.gradle 文件中的 Geb 特定数据。我知道这些版本可以一起使用,希望它们对你有用。

ext {
    // The drivers we want to use
    drivers = ["firefox", "chrome", "phantomJs"]

    ext {
        groovyVersion = '2.3.6'
        gebVersion = '0.10.0'
        seleniumVersion = '2.43.1'
        chromeDriverVersion = '2.10'
        phantomJsVersion = '1.9.7'
    }
}

dependencies {
    // If using Spock, need to depend on geb-spock
    testCompile "org.gebish:geb-spock:$gebVersion"
    testCompile("org.spockframework:spock-core:0.7-groovy-2.0") {
        exclude group: "org.codehaus.groovy"
    }
    testCompile "org.codehaus.groovy:groovy-all:$groovyVersion"

    // Drivers
    testCompile "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
    testCompile "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
    testCompile("com.github.detro.ghostdriver:phantomjsdriver:1.1.0") {
        // phantomjs driver pulls in a different selenium version
        transitive = false
    }
}