设置DesiredCapabilities
存在于以下库中:
1 | org.openqa.selenium.remote.DesiredCapabilities |
Desired Capabilities告诉Appium Server需要哪种ssession。以hash键值对的形式存储。
常用(android和ios共有的)
| Capability | Description | Values |
|---|---|---|
| automationName | Which automation engine to use | Appium (default) or Selendroid |
| platformName | Which mobile OS platform to use | iOS, Android, or FirefoxOS |
| platformVersion | Mobile OS version | e.g., 7.1, 4.4 |
| deviceName | The kind of mobile device or emulator to use | iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc… |
Android专用
| Capability | Description | Values |
|---|---|---|
| appActivity | Activity name for the Android activity you want to launch from your package | MainActivity, .Settings |
| appPackage | Java package of the Android app you want to run | com.example.android.myApp, com.android.settings |
| appWaitActivity | Activity name for the Android activity you want to wait for | SplashActivity |
| appWaitPackage | Java package of the Android app you want to wait for | com.example.android.myApp, com.android.settings |
获取Android手机型号与设备信息
- 在命令行中输入“adb shell”
- 进入shell之后,再输入
cat /system/build.prop | grep "product"
输出:
1 | shell@HS8916QC:/ $ cat /system/build.prop | grep "product" |
型号:Hisense I635T
查看具体的参数:
1 | getprop 查看机器的全部信息参数 |
设备通过wifi链接PC
官方教程
Appium有很多良好的特性,其中一个是通过wifi连接设备。
适用于多个设备连接一个server的情况。
前提:
Android SDK应该安装在机器上。
应该安装Android SDK包。
验证设备已经属于调试模式
1 | adb devices |
启动设备tcp/ip端口
首先用USB连接你的Android设备,然后在终端运行命令,它可以启动设备的5555端口使其在网络上可以连接
在TCP/IP模式下重启adb守护进程,然后监听5555端口(adb的默认端口)
1 | adb tcpip 5555 |
查看设备ip地址
现在断开USB连接, 确保设备和你的电脑连接同一个无线网络
查看手机ip,设置—wifi—你连接的wifi—IP地址
连接
使用电脑上的adb服务连接设备上的IP地址(使用默认的5555端口)
1 | adb connect 10.70.108.70:5555 |
测试是否连接成功
1 | C:\Users>adb devices |
通过wifi连接的特别不稳定,还是usb的方便点。
找到apk的appPackage和appActivity
通过命令行
准备步骤:
- 在设备上打开目标app
- 保证设备连上了电脑
- Andoid SDK已经安装在系统上
步骤1:打开命令行,输入adb devices查看设备是否连接
步骤2:输入adb shell进入与设备交互状态
步骤3:打开目标app如facebook输入以下命令
1 | dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' |
输出:
1 | mCurrentFocus=Window{2d31b9ee u0 com.facebook.katana/com.facebook.katana.LoginActivity} |
appPackage是:com.facebook.katana
aapActivity是:com.facebook.katana.LoginActivity
第一行斜杠前后的那一串。
注意:执行命令,要保证app没有锁屏,打开了目标app。
退出交互模式输入:exit回车。
其他方法:通过Appium client自动识别,或者,通过第三方识别设备信息的app如SnapDeal。
使用UIAutomatorviewer
UIAutomatorviewer在Android sdk和tools文件夹下。用于查看布局层次结构。
1 | uiautomatorviewer |

第一个appium测试脚本
运行appium
打开cmd,输入命令appium
连接手机
查看是否连接上,cmd输入adb devices查看设备连接列表。
编写python测试脚本
1 安装python-client-appium库:
1 | pip install Appium-Python-Client |