1.首先是配置环境以及安装所需要的工具
所用系统/工具:windows 10+安卓真机
1)先下载Android Studio,地址:https://developer.android.google.cn/studio ,可根据自己使用的系统版本选择
2)下载完成后进行安装,然后设置环境变量,具体操作可百度。校验环境变量设置是否成功,windows 命令行提示符下输入“cmd”,出现版本信息则表示配置成功
3)appium Client 支持多种语言,本文以python为例,所以安装python-client。命令:pip install Appium-Python-Client
2.利用python编写调用qq,并发送信息的脚本
from appiumimport webdriver
desired_caps={
"platformName": "Android",
"platformVersion": "8.0.0",
"deviceName": "######", #该字段是使用命令 adb devices,获取到的
"appPackage": "com.tencent.mobileqq", # 要测试的app包,获取方式,在sdk的build-tools目录下,所以要找到sdk的安装路径 ,命令例子:cd D:\android\SDK\build-tools\28.02 ,执行完命令查找关键字,package : name=''(中间跟的就是包名)
"appActivity": "com.tencent.mobileqq.activity.SplashActivity",要测试的appActivity,获取方式,在sdk的build-tools目录下,所以要找到sdk的安装路径 ,命令例子:cd D:\android\SDK\build-tools\28.02 ,执行完命令查找关键字,launchable-activity: name=''(这中间跟的就是包名)
# 下面这四个选项可以不用动,具体含义可百度
"automationName": "appium",
"resetKeyboard": "true",
"unicodeKeyboard": "true",
"noReset": "true"
}
# 启动
dr= webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
dr.implicitly_wait(1)
dr.find_element_by_id("com.tencent.mobileqq:id/title").click()# 点击选择群
dr.implicitly_wait(1)
"""发送音频文件消息,根据appium不同的定位方法,进行选择定位"""
dr.find_element_by_id("com.tencent.mobileqq:id/gny").click() # 点击“+”弹出,文件选项
type_list= dr.find_elements_by_id("com.tencent.mobileqq:id/dcf")
type_list[4].click() # 选择“文件”所在位置,文件在第5位
document_list= dr.find_elements_by_id("com.tencent.mobileqq:id/dv_") # 获取文件类型列表
document_list[1].click() # 点击音乐类型箭头,弹出下拉框,音乐处于第二个
# 选择音频列表中文件
doc_list= dr.find_elements_by_id("com.tencent.mobileqq:id/c_i")
for iin range(10):
doc_list= dr.find_elements_by_id("com.tencent.mobileqq:id/c_i")
doc_list[1].click()
dr.find_element_by_id("com.tencent.mobileqq:id/imy").click()# 点击发送
type_list= dr.find_elements_by_id("com.tencent.mobileqq:id/dcf")
type_list[4].click() # 选择“文件”所在位置,文件在第5位
document_list= dr.find_elements_by_id("com.tencent.mobileqq:id/dv_") # 获取文件类型列表
document_list[1].click() # 点击音乐类型箭头,弹出下拉框,音乐处于第二个
3.关于页面滑动利用swip方法实现
# 获得机器屏幕大小x,y
def getSize():
x= dr.get_window_size()['width']
y= dr.get_window_size()['height']
print(x,y)
return (x, y)
# 屏幕向上滑动
def swipeUp(t):
l= getSize()
x1= int(l[0]* 0.5)# x坐标
y1= int(l[1]* 0.75)# 起始y坐标
y2= int(l[1]* 0.25)# 终点y坐标
dr.swipe(x1, y1, x1, y2,t)
调用方法:swipeUp(1000)
测试中遇到的问题,纵坐标的间隔值(y1,y2)设定好之后,运行脚本发现滑动的效果是变化的,例如一页文件有5个,滑动时,第一次可滑动五个文件的距离,第二次可能就是4个,这个问题一直未解决
网友评论