【Python】轻量化编程实战
提高打工人效率系列文章:
第一篇 使用Python+Appium实现app自动化操作
文章目录
前言
创作背景:工作中需要对标某出行app定价,人工操作实在费时费力,通过appium自动化操作app实现简单高效的信息获取。
一、环境构建
-
Node.js
-
Appium server
-
Appium inspector
-
JDK8
-
Andriod SDK
-
模拟器(或真机*)
-
python IDE(限制为3.8.x版本)
-
Appium-Python-Client (须限定为2.11.x版本,否则会和Selenium 4.x版本冲突)
-
如用手机真机操作,需要开通手机USB调试模式,且电脑也需要开通USB写入权限;
二、连接手机(以真机为例)
-
手机连接电脑,开启USB调试模式;
-
打开cmd,输入adb devices检查手机是否正确连接,如正确连接,会显示已连接的手机识别码和端口;
-
打开app并定位到想访问的页面;
-
cmd输入命令adb shell dumpsys window | findstr “mCurrentFocus” 后获取appPackage名称以及当前的appActivity。下图中前面红框是appPackage,后面红框是appActivity。
三、建立编程环境和手机的连接
-
打开Appium server,启用服务器。主机和端口都选择默认即可;
-
根据前面步骤获取到的手机识别码、apppackage和activity等配置信息,建立新的session;
程序样例:
# 导入appium webdriver
from appium import webdriver
######################################## 配置APP参数 ###########################################
desired_caps = {
'platformName': 'Android',
'appium:deviceName': 'LKX0217C220XXXXX',
'appium:platformVersion': '10',
'appium:appPackage': 'com.XXXXXX.XXXXXX',
'appium:appActivity': 'com.XXXXXX.atlas.business.portal.PortalActivity',
'noReset':True, # 是否保留 session 信息,可以避免重新登录
'newCommandTimeout':