Appium连接真机

  1. 使用数据线连接电脑,然后选择文件传输方式
  2. 打开手机设置拉至底部,点击关于手机连续点击7次版本号打开开发者模式
  3. 点击设置中的系统与更新,找到开发者选项----> 打开USB调试即可
  4. 在终端中输入adb devices确定是否连接到手机,手机上有可能弹框让手动设置允许USB调试,点击确定即可。
  5. 连接完毕后,可以打开 appium服务开始整脚本啦。

每次打开app都要重新登录

在使用 python+appium+真机写脚本时,发现每次都是需要重新登录,需要在获取真机实例时补充参数:

{
    "noReset": True
}

完整版如下

desired_caps = {
    "platformName": "Android",
    "deviceName": "HBDYD21507204329",  # 通过 adb devices命令获取
    "appPackage": "com.hpbr.bosszhipin",
    "appActivity": ".module.launcher.WelcomeActivity",
    "platformVersion": "10",
    "noReset": True
}
# 获取到手机实例
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_caps)

打开app时报错,打不开app

明明是按照要求做的,但是总是打不开app,包名、活动页都没啥问题,为啥呢?

发现:我们通过adb shell dumpsys window | findstr mCurrentFocus命令获取的可能不是真正的包名

以Boos为例,然后通过命令找到了包名和活动页:{33bc171 u0 com.hpbr.bosszhipin/com.hpbr.bosszhipin.module.main.activity.MainActivity}

windows配置appium连接ios真机 appium连接真机测试_appium

放到脚本里,发现根本打不开app,直接报错了。

解决方案:

我们需要通过包名去拿详细的信息

adb shell dumpsys package com.hpbr.bosszhipin

windows配置appium连接ios真机 appium连接真机测试_包名_02

在Non-Data Actions的 action MAIN:里面第一行就是,我们测试下通过终端在手机上打开app.

adb shell am start com.hpbr.bosszhipin/.module.launcher.WelcomeActivity

以上是app的真正入口包名及活动页。

Unexpected error while obtaining UI hierarchy

我们使用Uiautomatorviewer软件时进行元素定位,但是点击快照时就蹦出错误,获取UI层次结构发生意外错误。

windows配置appium连接ios真机 appium连接真机测试_android_03

可能两种原因:

  • JDK版本问题,最好使用1.8的
  • android版本问题,Uiautomatorviewer不支持对8.0以后的版本直接截屏

详细解决方案请看这里