0

Я следую за этот учебник: http://arquillian.org/guides/functional_testing_using_graphene/Невозможно настроить Дрон: NoClassDefFoundError: ком/опера/ядро ​​/ системы/OperaDriver

Но я получил эту ошибку:

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.047 sec <<< FAILURE! 
cn.ftc.test.BeanTest Time elapsed: 1.045 sec <<< ERROR! 
java.lang.NoClassDefFoundError: com/opera/core/systems/OperaDriver 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2436) 
at java.lang.Class.getDeclaredMethods(Class.java:1793) 
at org.jboss.arquillian.core.impl.Reflections.getObserverMethods(Reflections.java:52) 
at org.jboss.arquillian.core.impl.ExtensionImpl.of(ExtensionImpl.java:51) 
at org.jboss.arquillian.core.impl.ManagerImpl.inject(ManagerImpl.java:198) 
at org.jboss.arquillian.core.impl.InjectorImpl.inject(InjectorImpl.java:58) 
at org.jboss.arquillian.core.impl.loadable.ServiceRegistryLoader.createServiceInstance(ServiceRegistryLoader.java:108) 
at org.jboss.arquillian.core.impl.loadable.ServiceRegistryLoader.all(ServiceRegistryLoader.java:55) 
at org.jboss.arquillian.drone.impl.DroneRegistrar.registerConfigurators(DroneRegistrar.java:74) 
at org.jboss.arquillian.drone.impl.DroneRegistrar.register(DroneRegistrar.java:67) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) 
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:68) 
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:97) 
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) 
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) 
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) 
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) 
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) 
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) 
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) 
Caused by: java.lang.ClassNotFoundException: com.opera.core.systems.OperaDriver 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 41 more 
Caused by: java.lang.ClassNotFoundException: com.opera.core.systems.OperaDriver 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 41 more 


Results : 

Tests in error: 
    cn.ftc.test.BeanTest: com/opera/core/systems/OperaDriver 

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0 

Вот моя arquillian.xml:

<extension qualifier="webdriver"> 
    <property name="browser">firefox</property> 
</extension> 

<container qualifier="JBOSS_AS_MANAGED_7.X" default="true"> 
    <configuration> 
     <!-- <property name="javaVmArguments">-Xmx1024m -XX:MaxPermSize=512m ${jacoco.agent}</property> --> 
     <property name="allowConnectingToRunningServer">true</property> 
     <property name="jbossHome">/home/neo/app/jboss-as-7.1.1.Final</property> 
    </configuration> 
</container> 

А вот мой dependency:

<dependencyManagement> 
    <dependencies> 
     <!-- Arquillian Core dependencies --> 
     <dependency> 
      <groupId>org.jboss.arquillian</groupId> 
      <artifactId>arquillian-bom</artifactId> 
      <version>${version.org.jboss.arquillian}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <!-- Arquillian Drone dependencies and WebDriver/Selenium dependencies --> 
     <dependency> 
      <groupId>org.jboss.arquillian.extension</groupId> 
      <artifactId>arquillian-drone-bom</artifactId> 
      <version>${version.org.jboss.arquillian.drone}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.arquillian.selenium</groupId> 
      <artifactId>selenium-bom</artifactId> 
      <version>2.35.0</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
</dependencyManagement> 

<dependencies> 

    <!-- webdriver --> 
    <dependency> 
     <groupId>org.jboss.arquillian.extension</groupId> 
     <artifactId>arquillian-drone-webdriver-depchain</artifactId> 
     <type>pom</type> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian.graphene</groupId> 
     <artifactId>graphene-webdriver</artifactId> 
     <version>${version.org.jboss.arquillian.graphene2}</version> 
     <type>pom</type> 
     <scope>test</scope> 
    </dependency> 
... 

Я выполнял этот тест на удаленном сервере JBoss-as-7.1.1. Я не понимаю, почему operadriver нужен ...

ответ

1

Зависимость org.jboss.arquillian.extension:arquillian-drone-webdriver-depchain:pom не требуется.

Должно быть достаточно использовать зависимости, перечисленные в учебнике.

Вы можете обновить версию, хотя, чтобы:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.jboss.arquillian</groupId> 
      <artifactId>arquillian-bom</artifactId> 
      <version>1.1.3.Final</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.arquillian.extension</groupId> 
      <artifactId>arquillian-drone-bom</artifactId> 
      <version>1.2.3.Final</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.arquillian.selenium</groupId> 
      <artifactId>selenium-bom</artifactId> 
      <version>2.39.0</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

и

<dependency> 
    <groupId>org.jboss.arquillian.graphene</groupId> 
    <artifactId>graphene-webdriver</artifactId> 
    <version>2.0.1.Final</version> 
    <type>pom</type> 
    <scope>test</scope> 
</dependency> 
0

Зависимости указать в POM

<dependency> 
    <groupId>org.jboss.arquillian.extension</groupId> 
    <artifactId>arquillian-drone-webdriver-depchain</artifactId> 
    <version>1.2.0.Final</version> 
</dependency> 

имеют зависимость от GroupID com.opera и артефакт operadriver

Plz см maven link http://mvnrepository.com/artifact/org.jboss.arquillian.extension/arquillian-drone-webdriver-depchain/1.2.0.Final

+0

Я добавил эту зависимость, но я до сих пор получил ту же ошибку. – Neo

+0

u сталкивается с проблемой при компиляции кода или запуске? Если компиляция затем проверяется на .m2 repo, и если она выполняется, проверьте, существует ли lib в пути к классам – Kick

+0

Weird. Репозиторий JBoss не имеет такой зависимости. 'Неспособность найти org.jboss.arquillian.extension: arquillian-drone-webdriver-depchain: jar: 1.2.0.Final в http://repository.jboss.org/nexus/content/groups/public/ был кэширован в локальное хранилище, разрешение не будет повторно загружено до тех пор, пока не истечет интервал обновления в репозитории JBoss или не будет принудительно обновлен. – Neo

0

Проблема связана с тем, что Opera Driver отсутствует в классе дорожка. В том числе весь Drnn веб-драйвер depchain решит проблему. Обратите внимание, что тип упаковки arquillian-drone-webdriver-depchain - это pom, поэтому убедитесь, что при включении зависимости к вашему проекту вы определяете type как pom. Таким образом, все его зависимости будут добавляться как переходные зависимости к вашему проекту.

<dependency> 
    <groupId>org.jboss.arquillian.extension</groupId> 
    <artifactId>arquillian-drone-webdriver-depchain</artifactId> 
    <version>${version.org.jboss.arquillian.drone}</version> 
    <type>pom</type> 
    <scope>test</scope> 
</dependency> 

Надеюсь, это поможет.

+0

Я понял это. У меня есть operadriver.jar в моем репозитории, но он был сломан.Я исправил его, удалив этот файл и восстановив проект. – Neo

 Смежные вопросы

  • Нет связанных вопросов^_^