美文网首页
appium +python 实现qq自动发送消息

appium +python 实现qq自动发送消息

作者: 小红帽_ | 来源:发表于2020-01-17 16:18 被阅读0次

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个,这个问题一直未解决

相关文章

网友评论

      本文标题:appium +python 实现qq自动发送消息

      本文链接:https://www.haomeiwen.com/subject/finczctx.html