由于错误的类文件导致的Selenium编译错误

时间:2017-12-04 07:17:19

标签: maven selenium jenkins

我的Java Web应用程序已从JDK 1.6升级到JDK 1.8版本,我正在更新测试环境以使用更新的Selenium组件。

下面提到的是pom.xml中包含的更新后的Jars。

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.0.0</version>
        <type>jar</type>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server-standalone</artifactId>
        <version>3.0.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>3.0.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-leg-rc</artifactId>
        <version>3.0.0</version>
    </dependency>

当我在Jenkins中运行作业时,它会抛出编译错误,如下所述。

        [ERROR] COMPILATION ERROR : 
        [INFO] -------------------------------------------------------------
        [ERROR] D:\Jenkins\workspace\WIDFLY-trunk\src\test\java\com\company\test\dragon\acceptance\test\shiftscheduling\switchautm\switchtimes\SwitchingTimesAbsTest.java:[3,-1] cannot access org.openqa.selenium.support.PageFactory
        bad class file: org\openqa\selenium\support\PageFactory.class(org\openqa\selenium\support:PageFactory.class)
        class file has wrong version 52.0, should be 50.0
        [INFO] 1 error
        [INFO] -------------------------------------------------------------
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD FAILURE
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 31.294s
        [INFO] Finished at: Mon Dec 04 CET 2017
        [INFO] Final Memory: 13M/31M
        [INFO] ------------------------------------------------------------------------
        Waiting for Jenkins to finish collecting data
        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project test: Compilation failure
        [ERROR] D:\Jenkins\workspace\WIDFLY-trunk\src\test\java\com\company\test\dragon\acceptance\test\shiftscheduling\switchautm\switchtimes\SwitchingTimesAbsTest.java:[3,-1] cannot access org.openqa.selenium.support.PageFactory
        [ERROR] bad class file: org\openqa\selenium\support\PageFactory.class(org\openqa\selenium\support:PageFactory.class)
        [ERROR] class file has wrong version 52.0, should be 50.0
        [ERROR] -> [Help 1]

我错过了什么?我认为它有selenium-support jar版本的问题,但我也尝试使用较低版本,我也遇到了同样的错误。

注意:如果我在CMD提示符中直接使用maven执行,我没有收到任何错误。 Jenkins作业执行只会抛出此错误。

请帮忙。

1 个答案:

答案 0 :(得分:1)

错误的确给了我们一个错误的提示:

cannot access org.openqa.selenium.support.PageFactory

class file has wrong version 52.0, should be 50.0

最有可能的解决方案是:

  • JDK 升级到最新版 JDK 8u151
  • 使用最新版 Selenium Maven Dependencies 当前 v3.8.1
  • 尝试仅使用 selenium-java 依赖关系。

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.8.1</version>
    </dependency>
    
  • 如果您使用 RemoteWebDriver implementation ,则仍需要启动Selenium服务器。最好的方法是从Selenium Downloads page下载 selenium-server-standalone.jar ,然后使用它。如果您向pom.xml添加以下依赖项,也可以将Selenium Server嵌入到您自己的项目中:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>3.8.1</version>
    </dependency>
    
  • selenium-support 不再是有效的依赖项,因此您可以将其删除。

  • maven clean maven install

  • 重新运行 Test