
Appium 3.x 小白必看安卓按键与通知栏操作完全指南 KeyCode 大全逐行代码讲解前言在 Appium 自动化测试中除了点击屏幕上的元素我们还经常需要模拟实体按键如音量键、返回键、控制通知栏、查看手机网络状态等。本文专门为刚接触 Appium 的小白设计用最直白的语言 一行代码一行注释的方式带你掌握这些“隐形操作”。文中所有代码基于Appium 3.x Python Client 5.x在真机Android 9上亲测通过。结尾还附上Android KeyCode 速查大全方便你随时复制使用。本文为个人原创学习笔记发布于 CSDN 仅作技术交流Appium 遵循 Apache 2.0 开源协议。一、环境准备通用模板逐行注释importtimefromappiumimportwebdriverfromappium.options.commonimportAppiumOptions# ---------- 设备与 APP 配置 ----------caps{platformName:Android,# 系统平台Androidappium:platformVersion:9,# 系统版本Android 9appium:deviceName:VOG-AL00,# 设备名务必与 adb devices 输出一致appium:automationName:UiAutomator2,# 自动化引擎appium:appPackage:com.android.settings,# 应用包名系统设置appium:appActivity:com.android.settings.SubSettings,# 启动 Activityappium:noReset:True,# 不重置应用数据保持上次状态}# 把配置装入 AppiumOptionsoptionsAppiumOptions()options.load_capabilities(caps)# 创建会话连接到本地 Appium Server默认端口 4723driverwebdriver.Remote(http://127.0.0.1:4723,optionsoptions)# 设置全局隐式等待 5 秒每次找元素都会在这个时间内重试driver.implicitly_wait(5)二、场景一打开和关闭通知栏完整代码 逐行解释# 1. 向下滑动打开通知栏Appium 内置方法比手动滑更稳定driver.open_notifications()# 2. 等待 3 秒方便肉眼确认通知栏已展开time.sleep(3)# 3. 按下安卓返回键KeyCode 4通知栏会自动收起driver.press_keycode(4)# 4. 再次等待 3 秒确保界面恢复到应用time.sleep(3)# 5. 结束整个自动化会话释放资源driver.quit()知识点open_notifications()专门用于展开安卓通知栏无需自己计算坐标滑动。返回键的 KeyCode 固定为4无论实体键还是导航栏虚拟键都一样。press_keycode()只模拟“按一下”长按需用long_press_keycode()。三、场景二关闭应用、查看网络、调节音量逐行注释# 1. 强制关闭“设置”应用效果等同于在多任务界面划掉卡片driver.execute_script(mobile: terminateApp,{appId:com.android.settings})# 2. 打印当前网络连接状态返回一个整数print(driver.network_connection)# 返回值含义0飞行模式1仅移动数据2仅WIFI6移动数据WIFI# 3. 按一下音量键KeyCode 24音量增加一格driver.press_keycode(24)time.sleep(3)# 等待 3 秒观察音量条# 4. 再按一次音量键音量再增加一格driver.press_keycode(24)time.sleep(3)# 5. 按一下音量-键KeyCode 25音量减小一格driver.press_keycode(25)time.sleep(3)# 6. 再按一次音量-键driver.press_keycode(25)time.sleep(3)# 7. 退出会话driver.quit()知识点mobile: terminateApp是 Appium 3.x 推荐关闭应用的方式比旧版driver.close_app()更可靠。network_connection是只读属性返回的数字可用来判断当前网络模式。音量键 KeyCode 固定为24和25-同理媒体控制也有对应 KeyCode。四、为什么不用set_network_connection()设置飞行模式很多新手尝试用driver.set_network_connection(1)切换飞行模式时会遇到报错Unknown command: data这是因为 Appium 底层需要通过 ADB 执行cmd phone data disable而部分模拟器如雷电或定制系统阉割了该命令。解决方案改用 ADB 命令或直接 UI 自动化点击飞行模式开关这样任何设备都能稳定运行。五、Android KeyCode 常用速查大全下面列出自动化测试中最常碰到的按键码直接复制 KeyCode 传入press_keycode()即可。按键名称KeyCode功能说明主页键 (HOME)3回到桌面返回键 (BACK)4返回上一页、关闭通知栏/弹窗拨号键 (CALL)5打开拨号盘挂断键 (ENDCALL)6挂断电话音量 (VOLUME_UP)24增大媒体/铃声音量音量- (VOLUME_DOWN)25减小音量电源键 (POWER)26锁屏/唤醒屏幕相机键 (CAMERA)27启动相机或拍照清除键 (CLEAR)28清除输入框文字字母 A ~ Z29 ~ 54A29依次递增Z54数字 0 ~ 97 ~ 1607916回车/确认 (ENTER)66确定、发送、搜索退格/删除 (DEL)67删除前一个字符空格 (SPACE)62输入空格Tab 键61切换焦点菜单键 (MENU)82旧设备菜单键搜索键 (SEARCH)84呼出搜索通知栏展开83部分系统可用但推荐open_notifications()多任务/概览键 (APP_SWITCH)187查看最近任务Android 9媒体 播放/暂停85控制音乐播放/暂停媒体 停止86停止播放媒体 下一首87切换到下一首媒体 上一首88切换到上一首媒体 快进90快进媒体 快退89快退音量静音164切换静音模式部分系统切换输入法228弹出输入法选择器更完整的列表可查阅 Android KeyEvent 官方文档。六、新手避坑与实用技巧press_keycode只模拟按下不模拟长按长按电源键等操作必须使用driver.long_press_keycode(26)。通知栏展开失败检查应用是否占用了全屏或者改用open_notifications()它是官方封装好的方法稳定性最高。音量调节后看不到效果音量条出现时间极短加time.sleep(2~3)或截图验证即可。关闭应用后如何重新打开使用driver.activate_app(com.android.settings)可以把应用重新拉回前台。deviceName必须与adb devices输出一模一样别随手写个VOG-AL00就完事必须先从命令行运行adb devices确认设备序列号。模拟器不支持set_network_connection碰到Unknown command: data错误时就别死磕代码了直接用 ADB 命令或界面操作飞行模式。七、总结与学习建议本文用两个最常见的场景把 Appium 中的按键模拟、通知栏控制、网络状态获取讲透了。对于刚入门的小白只要记住这几个 KeyCode 和对应方法就能完成大部分手机系统级操作返回press_keycode(4)主页press_keycode(3)音量加/减press_keycode(24)/25通知栏driver.open_notifications()网络状态driver.network_connection关闭应用mobile: terminateApp保存好这篇笔记以后写自动化脚本时直接复制模板再根据 KeyCode 大全调用你需要的按键效率直接翻倍版权与参考说明本文为个人原创学习笔记所有代码与案例均为实操整理发布于 CSDN 仅作技术交流Appium 为开源自动化测试框架遵循 Apache 2.0 开源协议参考资料Appium 官方文档、Android KeyEvent。