2017-12-04 7 views
1

Meine Java-Webanwendung wurde von JDK 1.6 auf JDK 1.8 aktualisiert, und ich aktualisiere die Testumgebung, um die aktualisierten Komponenten Selenium zu verwenden.Selen-Kompilierungsfehler aufgrund fehlerhafter Klassendatei

Unten aufgeführt sind die aktualisierten Gläser, die ich in der pom.xml aufgenommen habe.

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

Wenn ich einen Job in Jenkins ausführen, wird es einen Übersetzungsfehler zu werfen, wie unten erwähnt.

 [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] 

Was fehlt mir? Ich denke, es hat ein Problem mit selenium-support jar Version, aber ich habe auch mit niedrigeren Version versucht und ich bekomme den gleichen Fehler.

Hinweis: Wenn ich direkt mit maven in CMD-Eingabeaufforderung ausführen, bekomme ich keine Fehler. Jenkins Jobausführung löst nur diesen Fehler aus.

Bitte helfen Sie bitte.

+0

Überprüfen Sie lokale Maven repo.I denke, die Selen-Unterstützung Glas in Ihnen vor Ort muß nicht 'org .openqa.selenium.support.PageFactory' Klasse ich denke. –

+0

@SudhaVelan, die Klasse ist in Ordnung. Das Problem ist mit der Version. – DeeJay007

+1

@ DeeJay007 https://stackoverflow.com/questions/29906659/java-compiling-error-in-command-prompt-class-file-has-wrong-version-52-0-shoul – Grasshopper

Antwort

1

Der Fehler hat einen Hinweis darauf gibt, was falsch läuft, wie:

cannot access org.openqa.selenium.support.PageFactory 

und

class file has wrong version 52.0, should be 50.0 

Die wahrscheinlichste Lösung für Sie sein wird:

  • Upgrade-JDK zur aktuellen Version JDK 8u151
  • Verwenden aktuelle Version von Selenium Maven Dependencies Strom ist v3.8.1
  • Try selenium-java Abhängigkeit nur zu verwenden.

    <dependency> 
        <groupId>org.seleniumhq.selenium</groupId> 
        <artifactId>selenium-java</artifactId> 
        <version>3.8.1</version> 
    </dependency> 
    
  • Wenn Sie RemoteWebDriver implementation verwenden, müssen Sie noch einen Selenium-Server starten. Der beste Weg ist, die selenium-server-standalone.jar von der Selenium Downloads page herunterzuladen und einfach zu benutzen. Sie können auch einbetten die Selenium Server in das eigene Projekt, wenn Sie die folgende Abhängigkeit zu Ihrem pom.xml hinzufügen:

    <dependency> 
        <groupId>org.seleniumhq.selenium</groupId> 
        <artifactId>selenium-server</artifactId> 
        <version>3.8.1</version> 
    </dependency> 
    
  • selenium-support ist nicht mehr eine gültige Abhängigkeit, so dass Sie es entfernen können.

  • Sie maven clean und maven install

  • Re-Run Ihr Test

+0

Vielen Dank @DebanjanB, ich entfernte Selen-Unterstützung und enthielt Selen-Server-Gläser in der Pom. – DeeJay007

+0

Das eigentliche Problem ist JDK 1.8 ist nicht in der Jenkins-Konfiguration enthalten. Dies ist der Grund, warum es mit Maven CMD und nicht mit Jenkins gearbeitet hat. – DeeJay007

Verwandte Themen