看到网上各种自动化测试攻略,对此也略感兴趣,花时间研究了一下,该攻略仅供学习参考。请不要用于非法用途。
首先提供一个apk安装包,我是直接从应用宝下载的,大家可以放心使用。
通过adb install apk安装此版本今日头条
链接:https://pan.baidu.com/s/1zlLZXZt_gbKQ_WJ95kdsjw
提取码:tb6h
复制这段内容后打开百度网盘手机App,操作更方便哦
安装python环境,我本地是2.x的环境,安装pip工具包,pocoui模块,等依赖库,
如果安装超时可以切换国内镜像进行安装
常用镜像:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
命令
pip install -i 镜像地址 --default-timeout=100 库名
安装好之后运行以下代码就可以
# encoding: utf-8
import os
from datetime import datetime
import time
from airtest.core.api import connect_device
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
"""
1准备参数,启动指定app
"""
PackageName = 'com.ss.android.article.news'
SplashActivityName = 'com.ss.android.article.news.activity.SplashActivity'
print("PackageName:"+PackageName)
print("SplashActivityName:"+SplashActivityName)
def start_my_app(package_name, activity_name):
"""
打开应用
adb shell am start -n com.tencent.mm/.ui.LauncherUI
"""
try:
os.popen('adb shell am start -n %s/%s' % (package_name, activity_name))
except Exception as e:
print(e)
start_my_app(PackageName, SplashActivityName)
"""
2.准备加载pocoui模块,连接android设备
请先执行pip install pocoui安装pocoui模块
如果下载超时执行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pocoui
安装完成之后执行以下代码。
如果adb 始终连不上设备,请关闭(最好卸载)各种手机助手,重新尝试
如果模拟器端口不是默认端口,需要指定连接
dev = connect_device('Android://<adbhost[localhost]>:<adbport[5037]>/<serialno>')
poco = AndroidUiautomationPoco(dev)
serialno可以通过adb devices获取
"""
poco = AndroidUiautomationPoco()
"""
延时跳过广告
"""
time.sleep(10)
"""
2跳过广告
"""
"""
myDelayTime = 0
def timer(n):
while (bool(myDelayTime<10)):
global myDelayTime
myDelayTime+=n
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
time.sleep(n)
print("AppGoInHome:"+activity)
timer(5)
"""
"""
3模拟屏幕操作
需要知道app指定按钮的id,windows可以通过安装airtest查看,安卓手机安装开发助手也可以
"""
l_elements = poco(PackageName+':id/b3u')
def onclcik():
if not l_elements.exists():
print('btn not exist')
return
print('to click btn')
l_elements.click()
print('swipe list')
poco.swipe([0.5, 0.8], [0.5, 0.3], duration=0.2)
onclcik()
def test():
back = poco(PackageName+':id/a2')
if back.exists():
print("has back")
back.click()
select_tag = poco(PackageName+':id/ah9')
if select_tag.exists():
print("has select_tag")
select_tag.click()
test()
VID_20191212_165032.gif
网友评论