Appium Appium 换设备脚本运行失败,报错 Device was not in the list of connected devices

changeme2015 · 2015年07月06日 · 最后由 zongqi 回复于 2016年07月09日 · 2360 次阅读
如题:
appium之前编写的Java脚本,运行在设备AOK的,但换到B设备中运行提示报错:
org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Device ZX1C622BU3 was not in the list of connected devices) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 745 milliseconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:03:00'
System info: host: 'admin-PC', ip: '19.244.54.228', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_39'
Driver info: io.appium.java_client.AppiumDriver
查看adb device,设备B是可以正常查看的,但为什么提示设备找不到呢?求解,谢谢
appium中启动部分代码:

public class CommonUtil {

    public static AppiumDriver commonInit() throws MalformedURLException {
        AppiumDriver driver;
        // 使用phonegap打包的hybrid app路径
        String apppath = "F:\\mlm.apk";
        // setup AppniumDriver
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "emulator-5554");// 真机测试android设备
        capabilities.setCapability("platformVersion", "4.4.2");// 真机android版本为4.2.2
        capabilities.setCapability("platformName", "Android");// 真机为android系统
        capabilities.setCapability("app", apppath);// 被测app apk包的位置
        capabilities.setCapability("appPackage","xx");// 被测appActivity类所在包
        capabilities.setCapability("appActivity", ".xx");// 被测appActivity
        capabilities.setCapability("automationName", "selendroid");// 因为真机为4.2版本,所以使用selendroid
        // http://127.0.0.1:4723/wd/hub地址就是AppiumServer的地址
        capabilities.setCapability("app-wait-activity", "activity-to-wait-for");
        driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
        Set<String> contextNames = driver.getContextHandles();
        for (final String contextName : contextNames)
            System.out.println("App type:" + contextName);
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return driver;
    }


共收到 6 条回复 时间 点赞

排版啊,同学。
代码和日志都是用代码块:

代码块

不知道怎么设的请看排版说明

adb device 是不是显示 offline 状态?
安卓的设备名是不起效果的,只需要系统就可以了

刚刚已经删除了你一贴,怎么不接受教训呢? 这样我要 ban 你了。

#2 楼 @eurekasaber 设备显示的是 online 的,看网上添加了 capabilities.setCapability("udid", "ZX1C622BU3");运行还是失败的

这个问题最后怎么解决的呢??

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册