You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium 8+版本移除closeApp/launchApp后,同会话内如何关闭重启App?

Appium 8+ 同会话内关闭重启App的替代方案

Appium 8及以上版本移除了原有的launchApp()和closeApp()方法,要在同一会话内实现多次关闭重启App,可采用以下几种替代方案:

官方推荐API替代

这是最贴合原逻辑的方案,使用Appium提供的terminateApp()和activateApp()方法实现:

Python 代码示例

关闭应用

# Android 传入应用包名
driver.terminate_app("com.example.demo")
# iOS 传入Bundle ID
driver.terminate_app("com.example.demo")

重启激活应用

# Android
driver.activate_app("com.example.demo")
# iOS
driver.activate_app("com.example.demo")

Java 代码示例

关闭应用

// Android
driver.terminateApp("com.example.demo");
// iOS
driver.terminateApp("com.example.demo");

重启激活应用

// Android
driver.activateApp("com.example.demo");
// iOS
driver.activateApp("com.example.demo");

系统命令补充方案

如果官方API无法满足特殊场景需求,可直接调用系统层面的命令实现:

Android 端(ADB命令)

  • 强制关闭应用:adb shell am force-stop com.example.demo
  • 启动应用:adb shell monkey -p com.example.demo -c android.intent.category.LAUNCHER 1

在代码中可通过执行系统命令的方式调用,比如Python用subprocess模块,Java用Runtime.getRuntime().exec()执行。

iOS 端(Xcrun命令)

  • 终止应用:xcrun simctl terminate booted com.example.demo
  • 启动应用:xcrun simctl launch booted com.example.demo

注意事项

  • 调用terminateApp()时必须传入正确的包名(Android)或Bundle ID(iOS),否则会执行失败
  • activateApp()会直接将应用从后台唤醒或启动,若应用未被终止则直接切换到前台
  • 若需模拟用户手动划掉App的操作,可先调用backgroundApp(3)将App后台停留3秒,再执行终止操作

内容的提问来源于stack exchange,提问作者Dinesh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:45:26