美文网首页程序员码农的世界
使用python实现对安卓模拟器的自动化操作QQ!

使用python实现对安卓模拟器的自动化操作QQ!

作者: b4a0155c6514 | 来源:发表于2019-01-08 11:03 被阅读7次

    这里使用安卓模拟器自动实现qq登录,并且发一条说说,教程开始之前要安装好python开发环境:在win7和ubuntu系统安装Python开发环境,和安卓模拟器:使用夜神安卓模拟器创建安卓虚拟机

    使用python实现对安卓模拟器的自动化操作

    安装完成,就首先打开Pycharm新建python项目,最好是在虚拟环境下面进行的,不影响系统的配置,hello.py就是写代码的,pwd是读取密码

    使用python实现对安卓模拟器的自动化操作 使用python实现对安卓模拟器的自动化操作

    建好项目,在命令行安装需要用的环境,

    uiautomator2,pillow 这两个模块,在Pycharm的Terminal命令窗口用pip安装,这个在安装python环境的时候默认安装了的,

    使用python实现对安卓模拟器的自动化操作

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">1#两条安装的命令,依次输入
    2pip install --upgrade --pre uiautomator2
    3
    4pip install pillow
    </pre>

    安装好依赖模块,还要在本地模拟器的adb做关联文件的安装,用python -m uiautomator2 init 测试已连接的所有设备。

    初始化这时候会自动安装这几个文件,因为有些文件是要连接github会出现不稳定的情况,多尝试几次就好,出现图片的界面,就说明初始化成功了。

    uiautomator-server、

    atx-agent、

    openstf/minicap、

    openstf/minitouch

    使用python实现对安卓模拟器的自动化操作

    打开Pycharm这时候还要安装一个叫weditor

    的模块,同样使用pip安装,

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">1pip install -U weditor
    </pre>

    命令行启动 python -m weditor 会自动打开浏览器,输入设备的ip或者序列号,点击Connect即可,在代码需要用到模拟器的属性。

    使用python实现对安卓模拟器的自动化操作

    在hello.py需要写的逻辑代码:

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"> import uiautomator2 as u2
    def funpwd():

    这里是获取QQ的密码,在pwd.txt文件保存,下面的文件路径也要做对应的修改。

    f = open(r"C:UsersAdministratorPycharmProjects estpwd.txt", "r")
    txt = f.read()
    f.close()
    return txt
    pwd = funpwd()

    这里要根据具体情况修改IP地址

    d = u2.connect('192.168.0.103')
    d(text="QQ").click()
    d(text="登 录").click()
    d(text=u"QQ号/手机号/邮箱").set_text("1922820882")
    d(resourceId="com.tencent.mobileqq:id/password").set_text(pwd)
    d(resourceId="com.tencent.mobileqq:id/login").click()
    d(text="动态").click()
    d(text="好友动态").click()
    d(description=u"说说,").click()
    d(resourceId="com.tencent.mobileqq:id/name", text=u"分享新鲜事…").click()
    d(resourceId="com.tencent.mobileqq:id/name", text=u"分享新鲜事...").set_text("Hello ")
    d(resourceId="com.tencent.mobileqq:id/ivTitleBtnRightText").click()
    d(resourceId="com.tencent.mobileqq:id/ivTitleBtnLeft").click()
    d(resourceId="com.tencent.mobileqq:id/ivTitleBtnLeft").click()
    </pre>

    现在就是直接运行hello.py,再看模拟器就可以有效果。

    使用python实现对安卓模拟器的自动化操作

    <pre class="ql-align-justify" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">因为是模拟器的缘故,有些操作会跟真实机器有很大区别,这里是uiautomator2官方的gihub地址,有很多功能都可以尝试。https://github.com/openatx/uiautomator2</pre>

    相关文章

      网友评论

        本文标题:使用python实现对安卓模拟器的自动化操作QQ!

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