2014-01-28 60 views
0

我使用Seleniumwebdriver和Maven並試圖在Opera上運行一個簡單的測試。 我在我的pom文件中添加了歌劇驅動的版本1.5的依賴關係。Operadriver不能正常運作

此外我的硒服務器依賴項是2.39.0。我試圖降級這兩個依賴關係,但仍然我的歌劇驅動程序不工作,它顯示下面的錯誤。

任何建議將非常有幫助。 錯誤:

java.lang.NoClassDefFoundError: org/openqa/selenium/Keyboard at com.seleniumsimplified.webdriver.browsers.OperaDriverTestCase.testBasicOperaUsage(OperaDriverTestCase.java:22) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:77) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.Keyboard 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
... 27 more 

我的代碼如下: 包com.seleniumsimplified.webdriver.browsers;

import com.opera.core.systems.OperaDriver; 
import com.opera.core.systems.OperaProfile; 
import org.junit.AfterClass; 
import org.junit.Test; 

import org.openqa.selenium.WebDriver; 
import static org.hamcrest.CoreMatchers.is; 
import static org.junit.Assert.assertThat; 

public class OperaDriverTestCase { 


@Test 
public void testBasicOperaUsage(){ 

    WebDriver operaDriver = new OperaDriver(); 
    operaDriver.get("http://sadfasd.com"); 

    assertThat(operaDriver.getTitle(),is("")); 
    operaDriver.quit(); 
} 

}

+0

我可以得到您的操作系統嗎? –

回答

0

Jagori,

請看看這個link其中西蒙·斯圖爾特解釋說,HasInputDevice進口已經進入了不同的封裝。 HasImportDevice導入是鍵盤的類定義所在的位置。

希望這會有所幫助。

+0

嗨Curtis,感謝您的答覆。但是,我的代碼沒有任何用戶交互類的東西在它。我剛剛編輯我原來的問題,並插入代碼和完整的錯誤信息。我的Opera驅動程序只是沒有迴應。我可以在Firefox上運行我的測試,而不是在Opera上運行。 – Jagori

+0

@Jagori上面給出的錯誤與發佈的原始錯誤方式不同。我會看看我能弄清楚什麼。如果你能給我你的操作系統,那也會非常有用。 –

+0

是的,它的窗口7.很抱歉,因爲我無法剪切粘貼我的代碼最初是代碼格式。 – Jagori