python控制手机app_python使用appium自动化操作android设备app

# 功能目的:

python使用appium自动化操作android设备app

细节:python使用Appium Python Client模块操作appium server,而appium 是通过android sdk操作android设备的app

# 一、安装android studio,通过studio安装android sdk

https://developer.android.google.cn/studio/

安装android studio,然后通过android studio下载android sdk

记住android sdk的路径C:\Users\George\AppData\Local\Android\Sdk,设置本机环境变量ANDROID_HOME=C:\Users\George\AppData\Local\Android\Sdk

# 二、安装jdk、appium、python以及appium python client模块

appium除了需要android sdk,还需要用到java,所以下载安装jdk,并配置本机环境变量JAVA_HOME=C:\Program Files\java-1.8.0-openjdk-1.8.0.222-4.b10.redhat.windows.x86_64

下载安装appium:http://appium.io

下载安装python及所需模块

# 三、安装mumu模拟器(具体的android设备,其他模拟器也支持)

可以通过usb连接自己的手机(需要开启usb调试模式)

也可以本机安装安卓模拟器(需要开启usb调试模式,我用的mumu,感觉清爽点)

# 四、具体实现

# 获取apk的appPackage和appActivity(重要元素)

# 使用adb shell获取当前app的appPackage和appActivity

打开mumu,打开app,进入主页面

windows里进入C:\Users\George\AppData\Local\Android\Sdk\platform-tools,shift+右键,选择此处打开powershell

使用adb连接mumu模拟器,执行命令:

PS C:\Users\George\AppData\Local\Android\Sdk\platform-tools> .\adb.exe connect 127.0.0.1:7555

* daemon not running; starting now at tcp:5037

* daemon started successfully

connected to 127.0.0.1:7555

执行查询命令:PS C:\Users\George\AppData\Local\Android\Sdk\platform-tools> .\adb.exe shell

root@MI 6 Plus:/ # dumpsys activity | grep mFocusedActivity

mFocusedActivity: ActivityRecord{1ce9a23 u0 com.ss.android.ugc.aweme/.main.MainActivity t15}

此时”appPackage”=”com.ss.android.ugc.aweme”,”appActivity”=”com.ss.android.ugc.aweme.main.MainActivity”

# 使用apktool

# 下载apktool_2.4.0.jar

https://ibotpeaches.github.io/Apktool/

# 利用apktool反编译需要操作的aweme_aweGW_v8.1.0_e487ea0.apk

java -jar .\apktool_2.4.0.jar d .\aweme_aweGW_v8.1.0_e487ea0.apk

会在同级有一个名称为aweme_aweGW_v8.1.0_e487ea0的目录

然后用文本编辑器打开该目录下的AndroidManifest.xml,然后搜索关键字”

搜索关键字”

得到”appPackage”=”com.ss.android.ugc.aweme”,”appActivity”=”com.ss.android.ugc.aweme.main.MainActivity”

# 启动mumu模拟器

打开mumu,同时查看系统版本号

“platformVersion”: “6.0.1”

windows里进入C:\Users\George\AppData\Local\Android\Sdk\platform-tools,shift+右键,选择此处打开powershell

使用adb连接mumu模拟器,执行命令:

PS C:\Users\George\AppData\Local\Android\Sdk\platform-tools> .\adb.exe connect 127.0.0.1:7555

* daemon not running; starting now at tcp:5037

* daemon started successfully

connected to 127.0.0.1:7555

获取设备名称,执行命令(此时”deviceName”:”127.0.0.1:7555″):

PS C:\Users\George\AppData\Local\Android\Sdk\platform-tools> .\adb.exe devices

List of devices attached

127.0.0.1:7555 device

# 启动appium

appium console会有相应的过程输出

# 编写python程序,交互appium

#!/usr/bin/env python

from appium import webdriver

desired_caps = {

“platformName”: “Android”,

“platformVersion”: “6.0.1”,

“deviceName”: “127.0.0.1:7555”,

“appPackage”: “com.ss.android.ugc.aweme”,

“appActivity”: “com.ss.android.ugc.aweme.main.MainActivity”

}

# 连接appium server,告诉appium,代码要操作哪个设备上的哪个APP

driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)

# 执行上面的python代码,如果appium console最后有以下内容输出,则说明连接正确

[W3C (a7c28ff9)] Responding to client with driver.createSession() result: {“capabilities”:{“platform”:”LINUX”,”webStorageEnabled”:false,”takesScreenshot”:true,”javascriptEnabled”:true,”databaseEnabled”:false,”networkConnectionEnabled”:true,”locationContextEnabled”:false,”warnings”:{},”desired”:{“platformName”:”Android”,”platformVersion”:”6.0.1″,”deviceName”:”127.0.0.1:7555″,”appPackage”:”com.ss.android.ugc.aweme”,”appActivity”:”com.ss.android.ugc.aweme.main.MainActivity”},”platformName”:”Android”,”platformVersion”:”6.0.1″,”deviceName”:”127.0.0.1:7555″,”appPackage”:”com.ss.android.ugc.aweme”,”appActivity”:”com.ss.android.ugc.aweme.main.MainActivity”,”deviceUDID”:”127.0.0.1:7555″,”deviceScreenSize”:”1440×810″,”deviceModel”:”MI 6 Plus”,”deviceManufacturer”:”Xiaomi”}}

[HTTP] <– POST /wd/hub/session 200 7611 ms – 761

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值