51Testing软件测试论坛

标题: 运行 Appium 第一个 case 就出错了,看不出错误,google 了也没结果,特来求救 [打印本页]

作者: 小爸爸    时间: 2017-6-7 10:45
标题: 运行 Appium 第一个 case 就出错了,看不出错误,google 了也没结果,特来求救
代码很简单,如下
AndroidDriver androidDriver = null;
DesiredCapabilities cap=new DesiredCapabilities();
//cap.setCapability("noReset", true);
cap.setCapability("deviceName", "Android Emulator");//设备名称
cap.setCapability(CapabilityType.BROWSER_NAME, "");
cap.setCapability("platformName", "Android");
//cap.setCapability("platformName", "Android"); //安卓自动化还是iOS自动化
cap.setCapability("platformVersion", "7.1.1"); //安卓操作系统版本
//cap.setCapability("sessionOverride", true);//重新启动的话会重置session

cap.setCapability("appPackage","com.xunmeng.pinduoduo");//被测app的包名
cap.setCapability("appActivity",".ui.activity.MainFrameActivity");//被测app的入口Activity名称

//cap.setCapability("unicodeKeyboard", true); //支持中文输入
//cap.setCapability("resetKeyboard", true); //支持中文输入,必须两条都配置

try {
androidDriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub,cap);//把以上配置传到appium服务端并连接手机")
} catch (MalformedURLException e) {
e.printStackTrace();
}
androidDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);//隐式等待

//找到横滑栏,挨个点击icon
List eList = androidDriver.findElements(By.id("image"));
for(WebElement element:eList){
element.click();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
androidDriver.pressKeyCode(AndroidKeyCode.BACK);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
这行报错:androidDriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub,cap"));
异常如下:
Connected to the target VM, address: '127.0.0.1:62301', transport: 'socket'
Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.openqa.selenium.Platform.extractFromSysProperty(Ljava/lang/String;)Lorg/openqa/selenium/Platform; from class org.openqa.selenium.remote.RemoteWebDriver
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:271)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144)
at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:36)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:114)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:132)
at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:92)
at com.pdd.test.MainDemo.main(MainDemo.java:39)
实在没看懂什么意思,google了也没找到相关资料,请大家赐教



作者: 测试就是来开荒    时间: 2017-6-7 10:49
new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub,cap"));
确定url没写错?一般是(new URL("location string"), capabilityInstance)的

作者: 小爸爸    时间: 2017-6-7 10:49
测试就是来开荒 发表于 2017-6-7 10:49
new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub,cap"));
确定url没写错?一般是(new URL("loca ...

嗯,没写错,cap在new URL的参数外面的,要不然编译都错误了啊
作者: 测试的味道    时间: 2017-6-7 10:50
使用 markdown 的代码块排版,代码显示就好多了。PS:建议把整个完整的文件,包括 import 的部分也一起粘贴上来吧。我猜
import 那部分有问题。
作者: 小皮球的故事    时间: 2017-6-7 10:51
找到横滑栏,挨个点击icon,应该是这样写的吧
List < WebElement >  eList  =  androidDriver.findElements(By.id("image"));

作者: 芭比哇玩123    时间: 2017-6-7 10:52
粘贴到网页上代码格式有点乱了。。
作者: 小爸爸    时间: 2017-6-7 10:59
测试的味道 发表于 2017-6-7 10:50
使用 markdown 的代码块排版,代码显示就好多了。PS:建议把整个完整的文件,包括 import 的部分也一起粘贴 ...

谢谢~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2