代码如下:安装并打开APP
import os
from appiumimport webdriver
apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))# 获取当前项目的根路径
desired_caps = {}
desired_caps['platformName'] ='Android' # 设备系统
desired_caps['platformVersion'] ='9' # 设备系统版本
desired_caps['deviceName'] ='sanxing s9' # 设备名称
desired_caps['noSign'] ='true' #不重签名
# 测试apk包的路径
desired_caps['app'] = apk_path +'\\jd_id.apk'
# 应用程序的包名
# desired_caps['appPackage'] = 'com.baidu.searchbox'
# desired_caps['appActivity'] = 'com.baidu.searchbox.SplashActivity'
# 如果设置的是app包的路径,则不需要配appPackage和appActivity,同理反之
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 启动app
坑:
1.脚本无法运行
需要添加appium-python-client
2.appium-doctor 验证提示Android_HOME没有set
win10下的Android已经不需要配置Android_HOME,所以这个问题查了两天,0基础太造孽
自行配置Android_home,java_home,path
验证通过
3.APPium session 失败------同样的Android_home问题
4.Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME------同样的Android_home问题
因为一直用appium -doctor验证,觉得没问题,后面才发现,需要用appium-doctor,没有空格,尴尬,卡了我两天的问题
5.运行时真机安装完Appium Settings就报错退出
报错大概是某个目录下的appium-uiautomator2-server-debug-androidTest.apk没有写入权限,一直以为是需要配置权限,查了很久,试了很多方法,最后搜索对应的APK,复制到了报错的目录下,搞定。
6.运行安装脚本,安装后APP死在启动页面
参考网上答案,https://www.jianshu.com/p/30e328f65144 根据操作实际去尝试了下,果然是安全加固后重签名导致的,但是解决办法暂时看不懂,就在想有没有办法在执行脚本的时候就不去重签名
查找官方 Desired Capabilities Documentation文档,跟重签名有关的只有2个,1个是useKeystoreUse, a custom keystore to sign apks, default false,1个是noSignSkip ,checking and signing of app with debug keys, will work only with UiAutomator and not with selendroid, default false,根据相关性,代码里增加desired_caps['noSign'] ='true'
期间还遇到改了以后运行,问题依旧的情况,一度以为解决方法找错了。又仔细学习了下之前搜到的解决方案,发现是安装包已经被重签名,替换新安装包后搞定
脚本遗留问题:
1.安装时的权限怎么确定和取消
2.打开APP的启动广告图怎么滑动取消
网友评论