1、下载安装jdk,并在高级环境设置中配置jdk环境变量
2、安装appinum和node(注意:安装目录尽量不存在中文)
a、安装后成功后配置node环境变量,配置成功后打开cmd命令行,输入node -v进行验证
3、打开appinum,在appinum中配置环境变量
至此,appinum中的jdk环境配置成功
4、启动appinum的两种方式
a、直接通过appinum中的appinum.exe,点击快捷方式,点击start server直接启动
成功启动后的界面
b、通过cmd命令行启动appinum中的服务
node appinum安装路径 resources\app\node_modules\appium\build\lib\main.js进行启动
5、连接手机,用adb devices查找到手机的sn号
6、点击启动检查进行配置
7、进来之后将以下json copy到Desired Capabilities下JSON Representation中,会自动进行填充
{ "platformName": "Android", # 代表系统是安卓 "platformVersion": "9", # 安卓版本 "deviceName": "e748de73", # 手机的sn号 "appPackage": "com.tencent.mobileqq", # 应用包名 "appActivity": ".activity.SplashActivity", # 下边注释有 "noReset": "true", # 是否清除数据 "unicodeKeyboard": "true", # 编码格式 "ensureWebviewsHavePages": "true" }
注:appActivity查找
adb shell dumpsys activity | findstr 包名 | findstr LAUNCHER (必须打开被测程序后执行命令)
/后就是appActivity的value
不知道包名可通过 adb shell pm list packages 查找
adb shell pm list packages -3 查找三方包名
复制完成后 自动匹配数据根据情况进行修改
点击右下角save给一个名字进行保存后续可重复使用,保存完成后,我们可在Saved Capability Sets中看到,运行时可点击右下角start session进行,将会手机回到主界面,点击start session,手机会自动进入程序(此环节较慢)
进入之后的页面
8、录制脚本并进行输入点击操作
点击后进行脚本录制
后续就可进行脚本录制
例如登录按钮点击后,点击右方tap(相当于click操作,相同的操作还有send keys输入操作和clear清空操作)
9、使用python执行脚本
a、将脚本复制到python文件中
b、下载appinum包 通过pip install appinum-python-client==1.2.0 -i 镜像源
c、将配置复制到python中
d、创建driver,因为appinum打开程序较慢 进行隐式等待
from appium import webdriver caps = { "platformName": "Android", "platformVersion": "9", "deviceName": "e748de73", "appPackage": "com.tencent.mobileqq", "appActivity": ".activity.SplashActivity", "noReset": "true", "unicodeKeyboard": "true", "ensureWebviewsHavePages": "true" } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps) # 这个参数下边注释 driver.implicitly_wait(10) el1 = driver.find_element_by_id("com.tencent.mobileqq:id/btn_login") el1.click() el2 = driver.find_element_by_id("com.tencent.mobileqq:id/t3i") el2.click() el3 = driver.find_element_by_accessibility_id("请输入QQ号码或手机号或QID或邮箱") el3.send_keys("1888888888") el4 = driver.find_element_by_accessibility_id("密码 安全") el4.send_keys("1888888888") el5 = driver.find_element_by_accessibility_id("同意协议") el5.click() el6 = driver.find_element_by_accessibility_id("登录") el6.click()
Remote里有两个参数,第一个通过appinum中的Custom Server中的数据去输入,第二个参数是本地的一些配置,可直接copy appinum中的json