Appium 3.x实战:Python后台切换与关闭APP新写法
2026/7/24 21:05:09 网站建设 项目流程

Appium 3.x 实战笔记:APP后台切换与关闭的新版正确写法(适配Python Client 5.x)

前言

本文为Appium移动端自动化学习笔记,针对Appium 3.x + Appium-Python-Client 5.x版本,梳理「APP置于后台」「强制关闭APP」两个常用操作的标准实现方式。
老版本客户端中driver.background_app()driver.close_app()等直接调用方法已被移除,新版统一通过mobile:协议执行,本文所有代码均基于雷电9(安卓9)环境实操验证,适合新手复习避坑。

本文为个人原创学习笔记,发布于CSDN仅作技术交流;Appium遵循Apache 2.0开源协议。


一、将APP置于后台(backgroundApp)

功能说明

模拟用户按Home键,把当前前台APP切到后台运行,不会杀死进程;可设置后台停留时长,到期自动切回前台,常用于测试APP前后台切换、生命周期场景。

新版正确写法

# seconds=3 表示后台停留3秒后自动切回前台driver.execute_script("mobile: backgroundApp",{"seconds":3})

参数说明

  • seconds:后台停留的秒数
    • 填正整数:停留对应秒数后,自动把APP切回前台
    • 0:直接切到后台,不会自动切回,需要手动重新启动APP

二、强制关闭指定APP(terminateApp)

功能说明

彻底杀死目标APP的进程,等同于手动在多任务界面划掉APP;关闭后Appium与设备的连接依然保留,后续可继续执行其他操作。

新版正确写法

# 替换引号内的包名,即可关闭对应APPdriver.execute_script("mobile: terminateApp",{"appId":"com.android.settings"})

扩展写法:关闭当前前台APP

不想硬编码包名时,可以先获取当前前台APP的包名,再执行关闭,适合通用工具脚本。

current_pkg=driver.current_package driver.execute_script("mobile: terminateApp",{"appId":current_pkg})

三、完整可运行示例代码

以下代码可直接复制运行,实现「打开系统设置 → 切到后台3秒 → 自动切回 → 强制关闭设置APP」的完整流程。

importtimefromappiumimportwebdriverfromappium.options.commonimportAppiumOptions# 配置参数caps={"platformName":"Android","appium:platformVersion":"9","appium:deviceName":"25102RKBEC","appium:automationName":"UiAutomator2","appium:appPackage":"com.android.settings","appium:appActivity":"com.android.settings.Settings","appium:noReset":True,}# 创建驱动,连接Appiumoptions=AppiumOptions()options.load_capabilities(caps)driver=webdriver.Remote(command_executor='http://127.0.0.1:4723',options=options)# 1. 将APP置于后台3秒,自动切回driver.execute_script("mobile: backgroundApp",{"seconds":3})time.sleep(3)# 2. 强制关闭系统设置APPdriver.execute_script("mobile: terminateApp",{"appId":"com.android.settings"})# 结束会话driver.quit()


四、新旧API对照表(复习速查)

老版本直接写法(已失效)新版标准写法功能说明
driver.background_app(秒数)driver.execute_script("mobile: backgroundApp", {"seconds": 秒数})将APP切到后台
driver.close_app()driver.execute_script("mobile: terminateApp", {"appId": "包名"})强制关闭指定APP
driver.terminate_app("包名")同上同上

五、新手避坑总结

  1. 两个“关闭”一定要分清

    • mobile: terminateApp:只关闭APP进程,连接不断,后面还能继续操作设备
    • driver.quit():断开整个Appium连接,会话彻底结束,只能放在脚本最后收尾
  2. 后台操作的等待注意
    seconds参数本身就包含了等待逻辑,设置seconds=3时,代码会阻塞3秒等APP切回,不需要额外加time.sleep;如果设为0不自动切回,才需要自己控制等待时长。

  3. 权限说明
    后台切换、关闭APP这两个操作,不需要开启--relaxed-security权限,正常启动Appium即可运行;只有执行shell命令、安装卸载APK等操作才需要放开安全限制。


版权与参考说明

  1. 本文为个人原创学习笔记,所有代码与案例均为实操整理,发布于CSDN仅作技术交流;
  2. Appium 为开源自动化测试框架,遵循 Apache 2.0 开源协议,引用其官方规范仅作学习说明;
  3. 参考资料:Appium 官方文档

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询