如何使用Appium-Python启动Android应用指定Activity?
使用Appium的
mobile: startActivity启动指定Android Activity mobile: startActivity是Appium替代旧版start_activity的扩展命令,本质是通过执行脚本调用Appium的扩展接口,核心是传对两个必填参数:
核心参数说明
appPackage: 目标应用的包名(比如微信的包名是com.tencent.mm)appActivity: 要启动的Activity完整类名(比如微信的主Activity是com.tencent.mm.ui.LauncherUI)
不同语言的示例代码
Python 示例
假设你已经初始化好了Appium Driver实例(比如driver),直接调用execute_script即可:
# 替换成你的应用包名和Activity名 driver.execute_script('mobile: startActivity', { 'appPackage': 'com.example.your_app', 'appActivity': 'com.example.your_app.TargetActivity' })
Java 示例
同样基于已初始化的AndroidDriver实例:
import java.util.HashMap; // 构造参数Map HashMap<String, String> activityParams = new HashMap<>(); activityParams.put("appPackage", "com.example.your_app"); activityParams.put("appActivity", "com.example.your_app.TargetActivity"); // 执行扩展命令 driver.executeScript("mobile: startActivity", activityParams);
怎么找自己应用的包名和Activity?
新手最头疼的就是不知道这两个值,用adb命令就能搞定:
- 打开你的应用,切换到要启动的目标Activity页面
- 在电脑终端执行:
adb shell dumpsys window | grep mCurrentFocus
- 输出结果类似
mCurrentFocus=Window{xxxx u0 com.example.your_app/com.example.your_app.TargetActivity},其中com.example.your_app是包名,后面的com.example.your_app.TargetActivity就是Activity完整类名。
注意事项
- 确保你的Appium服务器是较新版本(建议用最新稳定版,避免兼容性问题)
- 驱动实例必须处于正常连接状态(设备没断开,Appium服务没崩溃)
- 如果目标Activity需要特定权限,要提前让应用获取到这些权限,否则可能启动失败
- 启动后如果需要等待Activity加载完成,可以配合显式等待(比如Python的
WebDriverWait,Java的WebDriverWait)或者driver.wait_activity()(Python专属)
内容的提问来源于stack exchange,提问作者YanaK
相关产品推荐
相关产品推荐

