python appium操作手机及app各种方法

本文汇总了常用的Appium自动化测试命令,包括锁定屏幕、后台运行应用、启动活动、键盘操作、应用管理等,适用于移动应用自动化测试的快速查阅。

在网上看了些,一起整理了下,还是有些不够全,但都比较常用了,先放出来吧。

#锁定屏幕时间秒
driver.lock(5)
#将APP放置后台 参数时间秒
driver.background_app(5)
#收起键盘
driver.hide_keyboard()
#启动Activity
driver.start_activity(‘包名’, ‘activity名’)
#打开通知栏
driver.open_notifications()
#检查应用是否已经安装 参数包名
driver.is_app_installed(‘xxxxxx’)
#安装应用 参数 路径
driver.install_app(‘path/my.apk’)
#删除应用
driver.remove_app(‘xxxxxx’)
#摇晃(Shake)
driver.shake()
#关闭应用
driver.close_app()
#重置(等于卸载后重装)
driver.reset()
#获取应用的字符串
driver.app_strings
#按键事件
driver.keyevent(具体的按键)
#获取当前Activity
driver.current_activity
#触摸动作(TouchAction) / 多点触摸动作(MultiTouchAction)
action = TouchAction(driver)
action.press(element=el, x=10, y=10).release().perform()
#滑动(Swipe) 参数 开始x,y坐标 滑动到的X,y坐标, 持续时间ms
driver.swipe(start=75, starty=500, endx=75, endy=0, duration=800)
#双指向内移动缩小屏幕
driver.pinch(element=el)
放大 driver.zoom(ele)
坐标点击
driver.tap([(x,y)],time)

滚动
driver.scroll(ele1,ele2)

按住element并拖动到另外一个element上
driver.drag_and_drop(ele1,ele2)

滑动
driver.swipe(x1,y1,x2,y2,time)
driver.flick(x1,y1,x2,y2)

#滑动到某个元素。
todo: xxxx

#拉出文件 (Pull File)从设备中拉出文件
driver.pull_file(‘Library/xxx/xxx.plist’)

#推送文件(Push file) 把文件放到设备中
data = “test is good”
path = “/data/local/tmp/test.txt”
driver.push_file(path, data.encode(‘base64’))

<think>我们参考了提供的引用内容,特别是引用[3]中给出了使用PythonAppium启动模拟器上应用程序的具体代码示例。用户的问题是如何使用PythonAppium启动模拟器上的应用程序,因此我们将重点围绕这个代码示例进行说明。 步骤: 1. 确保环境已经配置好:包括安装Appium-Python-Client库,安装并配置Java JDK,安装Node.js,安装Appium服务器,以及配置Android SDK(包括adb工具)等(如引用[1]和[2]所述)。 2. 准备好模拟器(如夜神模拟器、Android Studio自带的模拟器等)并启动,确保adb可以连接到模拟器。 3. 编写Python代码,使用webdriver.Remote连接Appium服务器,并传入所需的能力参数(capabilities)。 关键点在于正确设置capabilities参数,包括: - platformName: 平台名称,如Android - deviceName: 设备名称,通常是模拟器的adb连接地址,如127.0.0.1:62001(夜神模拟器默认端口) - appPackage: 要启动的应用程序的包名 - appActivity: 要启动的应用程序的入口Activity 获取appPackage和appActivity的方法: - 使用adb命令:先打开要分析的应用程序,然后执行 `adb shell dumpsys window | findstr mCurrentFocus`(Windows)或 `adb shell dumpsys window | grep mCurrentFocus`(Linux/Mac)来查看当前活动的Activity和包名。 示例代码(基于引用[3]): # coding=utf-8 from appium import webdriver def get_driver(): capabilities = { "platformName": "Android", "deviceName": "127.0.0.1:62001", # 模拟器的设备名,可通过adb devices查看 "appPackage": "cn.btclass.sierra", # 替换为你的应用包名 "appActivity": "cn.btclass.sierra.ui.activity.splash.SplashActivity" # 替换为你的应用入口Activity } driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", capabilities) return driver driver = get_driver() 注意: - 确保Appium服务器已经启动,默认运行在4723端口。 - 设备名(deviceName)可以通过`adb devices`命令获取,例如:`127.0.0.1:62001 device`,那么设备名就是`127.0.0.1:62001`。 - 如果使用真机,设备名可能会不同,并且可能需要额外配置。 如果连接成功,这段代码将启动模拟器上的指定应用程序。 但是,在实际操作中,可能会遇到各种问题,比如端口被占用、设备未连接、包名或Activity名错误等,需要根据错误信息进行排查。 另外,引用[1]和[2]提供了环境配置的版本参考,如果遇到兼容性问题,可以尝试使用相近的版本。 综上所述,使用PythonAppium启动模拟器上的应用程序,主要步骤是配置环境、编写并运行连接代码。 </think> 以下是使用 PythonAppium 启动模拟器上应用程序的完整方法指南: ### 🛠 核心步骤 1. **环境准备**(参考[^1][^2]) - 安装 Python 库:`pip install Appium-Python-Client selenium` - 安装 Node.js(Appium 依赖) - 安装 Java JDK(建议 JDK 1.8+) - 安装 Appium 服务器:`npm install -g appium` - 配置 Android SDK 并设置环境变量 2. **获取应用信息** - 获取应用包名(appPackage): ```bash adb shell pm list packages | grep <应用关键词> ``` - 获取入口 Activity(appActivity): ```bash adb shell dumpsys activity | grep mResumedActivity ``` 3. **连接模拟器**(以夜神模拟器为例[^3]) ```python from appium import webdriver def launch_app(): capabilities = { "platformName": "Android", # 平台类型 "deviceName": "127.0.0.1:62001", # 模拟器端口号 "appPackage": "com.example.app", # 替换为实际包名 "appActivity": ".MainActivity", # 替换为入口Activity "automationName": "UiAutomator2", # 自动化引擎 "noReset": True # 不重置应用状态 } driver = webdriver.Remote( "http://127.0.0.1:4723/wd/hub", # Appium 服务地址 capabilities ) return driver ``` 4. **执行启动** ```python if __name__ == "__main__": driver = launch_app() print("应用启动成功!") # 后续操作... driver.quit() # 退出驱动 ``` ### ⚠️ 关键注意事项 1. **端口配置** - 模拟器端口:夜神模拟器默认端口 `62001`,Genymotion 默认 `5555` - Appium 端口:默认 `4723`,可通过 `appium -p <端口号>` 修改 - 查看连接设备:`adb devices` 2. **常见问题解决** - **连接超时**:检查 Appium 服务是否启动(`appium &`) - **端口冲突**:重启模拟器并重置 adb:`adb kill-server && adb start-server` - **权限问题**:确保模拟器已开启 USB 调试模式 ### 🌰 实际示例 启动抖音极速版(假设包名已知): ```python capabilities = { "platformName": "Android", "deviceName": "emulator-5554", "appPackage": "com.ss.android.ugc.lite", "appActivity": "com.ss.android.ugc.lite.main.MainActivity" } ``` --- 📚 **相关参考文档** - [Appium 官方能力参数表](https://appium.io/docs/en/writing-running-appium/caps/) - [Android 开发者文档](https://developer.android.com/studio/test)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值