当前位置: 首页 > 面试题库 >

即使在Grails中更新了Selenium依赖关系后,为什么我的Geb测试也返回“无法通过回调创建驱动程序”?

夹谷宜民
2023-03-14
问题内容

我正在引用这个先前的线程(geb.driver.DriverCreationException:无法从callback创建驱动程序)-但是仍然有问题。

我正在尝试在Grails2.4.3下运行Geb功能测试,并且我将Selenium支持依赖项设置为2.42.2版。我也在2.43.1和2.45.0中尝试过。如果尝试selenium2.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测试,但将返回“页面无法正确重定向”错误。

在我的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文件中特定于Ge​​b的数据。我知道这些版本可以一起使用,希望它们对您有用。

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
    }
}


 类似资料:
  • 我有一个CSV数据集,我试图通过它在数据库中已经存在的两个节点类型(和)之间建立关系。 这是数据库信息- 问题是--无论我尝试哪个密码查询,它们都返回相同的东西--“无更改,无行”。 此查询只返回“no rows”。 我还尝试了该查询的一个变体,其中我没有使用函数,但这并没有什么不同。 为了确保节点存在,我从CSV文件中选择了随机单元格值,并使用子句来确保数据库中存在相应的和节点,并且找到了所有节

  • 这是我的代码: 因为我使用POM设计模式,所以我为此创建了一种方法: 这是超文本标记语言标签: 我的问题是,即使存在WebElement,isDisplayed()也返回false。

  • 问题内容: 无法在项目lcms.web上执行目标: 问题答案: 似乎您正在尝试从SNAPSHOT存储库中解决RELEASE工件,因此Artifactory正在发送错误(409冲突)。 您应将构建定向到“ libs- releases”虚拟存储库,或仅保存发行版的任何其他虚拟存储库,因此,仅包含发布工件的存储库将参与RELEASE工件解析的过程。 你可以阅读这里更多关于Artifactory的Mav

  • 在将Grails版本从2.3.6升级到2.4.5之后,我现在在运行Geb Spock测试时遇到了一个异常。 我记得在Grails 2.3.6中最初设置Geb时遇到过这个异常,其中BuildConfig和GebConfig文件没有正确配置。然而,在重新检查Geb所需的必要插件和依赖项时,我没有注意到Grails 2.4.5有任何不同。此外,我将依赖项解析从Ivy切换到Maven,因此我再次检查Mav

  • 目前我的项目使用Spring启动测试如下: 但是,尽管有测试范围,它还是引入了sping-core(这是此版本中易受攻击的tpl)作为编译范围传递依赖项,并且它出现在我编译的二进制文件中。 我知道我可以通过使用测试范围显式拉动Spring核心来解决这个问题: 然而,这不应该是必要的。为什么只有在将依赖项拉入编译范围的测试中才有依赖项?

  • 问题内容: 我是Linux世界的新手,我想从Python查询Microsoft SQL Server。我在Windows上使用了它,这很好,但是在Linux上却很痛苦。 几个小时后,我终于成功地使用unixODBC在Linux Mint上安装了Microsoft ODBC驱动程序。 然后,我用python 3环境设置了一个anaconda。 然后,我这样做: 它返回: 我不明白的是,PyODBC似