美文网首页
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