JAVAlang.NoClassDefFoundError:org。openqa。硒。安卓使用安卓的WebDriver中出现AndroidWebDriver错误
我正在尝试使用Webdriver在使用eclipse和JUnit的emulator上测试网站。 但我总是得到:
java.lang.NoClassDefFoundError: org.openqa.selenium.安卓.AndroidWebDriver
at my.empty.project.test.SdkDemoTest.setUp(SdkDemoTest.java:22)
at 安卓.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at 安卓.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at 安卓.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545)
at 安卓.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551)
在我添加的Java构建路径引用库中:
- 安卓_webdriver_库。罐子
- 安卓_webdriver_library-srcs。罐子
- 番石榴-12.0。罐子
- selenium-java-2.21.0。罐子
- selenium-server-2.21.0。罐子
- selenium-server-standalone-2.0b2。罐子
- selenium-server-standalone-2.21.0。罐子
代码如下。 是否有人有这样的问题,也许可以帮助解决
提前谢谢
package my.empty.project.test;
import 安卓.test.ActivityInstrumentationTestCase2;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.安卓;
import org.openqa.selenium.安卓.AndroidWebDriver;
import my.empty.project.MyAndroidProjectActivity;
public class SdkDemoTest extends ActivityInstrumentationTestCase2<MyAndroidProjectActivity>{
private WebDriver driver;
public SdkDemoTest() {
super("my.empty.project", MyAndroidProjectActivity.class);}
@Override
protected void setUp() throws Exception {
driver = new AndroidWebDriver(getActivity());
}
@Override
protected void tearDown() {
driver.quit();
}
public void testSDKdemoprep() {
driver.get("http://sdkdemoprep.playphone.pluto.vn.ua/");
WebElement element = driver.findElement(By.xpath("/html/body/img"));
element.click();
element = driver.findElement(By.xpath("/html/body/div[3]/div/div[9]/div[7]/div/div[2]/div/div[2]/div/div[2]"));
}
}
# 1 楼答案
我花了一段时间,但我终于明白了
尽管我的情况和你的有点不同,因为你在做:
当我在做:
这是Web驱动程序安装中提供的默认额外项目之一,它应该仍然适用,因为您需要修改
my.empty.project
我所做的是将Google Web驱动程序中的两个项目额外导入Eclipse,这给我留下了:
第一个工作正常,但第二个工作正常,这就是
我发现我必须将TestAndRoidWebApp项目中的库添加到SimpleApp项目中。这两个图书馆条目是:
但是,正如我在Android上发现的,它并不像复制和粘贴那么简单,所以我所做的就是按照下面的Answer already on Stack Overflow介绍如何导入Jar文件并将它们添加到我的库列表中
这是为了让它们被认为是Dalvik转换并捆绑到我的simple中。应用程序(在您的例子中是my.empty.project),然后将其复制到Android Emulator
这让我克服了这个例外
注意:可能不需要捆绑
guava-r09.jar
,但我在最初尝试时就这么做了,没有它就没有重新测试过# 2 楼答案
我经历了这个问题,终于找到了解决办法
转到project>;清洁的现在运行测试
这仅适用于“java.lang.NoClassDefFoundError:org.openqa.selenium.android.AndroidWebDriver”错误
# 3 楼答案
假设您正在使用JUnit。试着改变一下测试:
换句话说:如果不使用
@Before
、@Test
和@After
注释,则必须以某种方式告诉程序必须以某种方式启动驱动程序。因此,您可以尝试的另一种方法是稍微更新测试方法: