Использование OperaDriver для Selenium WebDriver
Я не могу запустить свои тесты с OperaDriver. Я использовал operadriver-1.5.jar; operadriver-v0.18.zip; operadriver-v1.1.zip и многие другие здесь: https://github.com/operasoftware/operadriver/downloads
Я использую для Selenium Webdriver selenium-server-standalone-2.33.0.jar .
Пример кода:
import org.junit.*;
import org.openqa.selenium.*;
import com.opera.core.systems.OperaDriver;
import com.opera.core.systems.*;
public class Opera_test {
private WebDriver operadriver;
private String baseUrl;
@Before
public void setUp() throws Exception {
operadriver = new OperaDriver();
baseUrl = "http://www.google.com";
operadriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testCaseGoogle() throws Exception {
operadriver.get(baseUrl + "/");
}
@After
public void tearDown() throws Exception {
operadriver.quit();
}
Я получил ошибку после этого:
#
java.lang.NoClassDefFoundError: org/openqa/selenium/interactions/Keyboard
at Opera_test.setUp(Opera_test.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.interactions.Keyboard
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 25 more
##
Как это можно исправить?
3 ответа
Если вы используете новейшую версию оперы, вы должны использовать operachromiumdriver
Если вы хотите более старую версию оперы, то более старый оперный драйвер. Так что все зависит от вашей версии Opera.
Следующий код Java должен работать. Я использовал Selenium WebDriver 2.53.0
System.setProperty("webdriver.opera.driver", "D:/SeleniumCode_Ripon/operadriver_win64/operadriver.exe");
driver = new OperaDriver();
Хорошо, я видел такую ошибку, когда версия драйвера и браузер не были совместимы. Поэтому попробуйте обновить Selenium, текущая версия - 2,35 (я полагаю, вы обновляете свой браузер, чтобы это могло помочь).