Python+Appium自动化操作微信,看这一篇就够了
简介Appium 是一个开源的自动化测试工具 , 支持 Android、iOS 平台上的原生应用 , 支持 Java、Python、PHP 等多种语言 。
Appium 封装了 Selenium , 能够为用户提供所有常见的 JSON 格式的 Selenium 命令以及额外的移动设备相关的控制命令 , 比如:多点触控手势、屏幕朝向等 。
私信小编01即可获取大量Python学习资料
环境本文主要环境如下:
- Win7
- JDK1.8
- Appium
- Python3.7
- android-sdk
- mumu 模拟器
- 计算机(右键)->属性->高级系统设置->高级->环境变量->新建环境变量 JAVA_HOME, 如图所示:
文章插图- 系统变量->找到 Path 变量->编辑->在变量值的末尾添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 新建 CLASSPATH 变量 , 变量值为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
- 与 JDK 配置类似 , 新建环境变量 ANDROID_HOME, 变量值为 android-sdk 位置 , 比如: D:\android-sdk-windows
- 在 Path 变量值的末尾添加 ;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\30.0.0-preview;%ANDROID_HOME%\platform-tools
Appium 安装完成启动后 , 点击编辑配置 , 配置 JDK 和 android-sdk , 如图所示:
文章插图mumumumu 模拟器下载完后 , 除了根据自己需要更改一下安装路径 , 其他选项默认即可安装 , 装完后打开点击 应用中心, 搜一下微信 , 搜到之后安装一下 , 微信安装完成后再用自己的微信号登录一下 。
因为我们是通过安卓的 adb 连接虚拟机的 , 因此需要在控制台执行 adb connect 127.0.0.1:7555 命令 , 让 adb 连接上虚拟机 。
【Python+Appium自动化操作微信,看这一篇就够了】执行了上面连接模拟器的命令后 , 我们可以在 cmd 控制台输入 adb devices 查看当前连接的虚拟机 。
使用首先启动 Appium 和 mumu , 因为之前我们已经配置了 Appium , 此时我们直接点击 Appium 的启动服务器 按钮即可 , 如下图所示:
文章插图启动之后如图所示:
文章插图现在我们可以先通过 Python 来启动一下微信 , 代码实现如下:
desired_caps = {"platformName": "Android",# 操作系统"deviceName": "emulator-5554",# 设备 ID"platformVersion": "6.0.1",# 设备版本号"appPackage": "com.tencent.mm",# app 包名"appActivity": "com.tencent.mm.ui.LauncherUI",# app 启动时主 Activity'noReset': True,# 是否保留 session 信息 , 可以避免重新登录'unicodeKeyboard': True,# 使用 unicodeKeyboard 的编码方式来发送字符串'resetKeyboard': True# 将键盘给隐藏起来}driver = webdriver.Remote('', desired_caps)执行上述代码之后 , 如果发现 mumu 模拟器中的微信已经启动了 , 就说明基本环境已经调通了;如果执行代码后发现调不到 mumu 模拟器中的微信 , 先在 cmd 中执行一下 adb connect 127.0.0.1:7555 命令 , 再执行程序即可 。添加好友我们先来使用 Appium 实现添加好友的操作 , 基本过程为:打开微信->点击⊕->选择添加朋友->在搜索框输入微信号->点击搜索->点击添加到通讯录 , 功能的代码实现如下:
desired_caps = {"platformName": "Android",# 操作系统"deviceName": "emulator-5554",# 设备 ID"platformVersion": "6.0.1",# 设备版本号"appPackage": "com.tencent.mm",# app 包名"appActivity": "com.tencent.mm.ui.LauncherUI",# app 启动时主 Activity'noReset': True,# 是否保留 session 信息 , 可以避免重新登录'unicodeKeyboard': True,# 使用 unicodeKeyboard 的编码方式来发送字符串'resetKeyboard': True# 将键盘给隐藏起来}driver = webdriver.Remote('', desired_caps)time.sleep(10)print('点击+号')driver.find_element_by_id('com.tencent.mm:id/ef9').click()time.sleep(5)print('选择添加朋友')driver.find_elements_by_id('com.tencent.mm:id/gam')[1].click()time.sleep(5)print('点击搜索框')driver.find_element_by_id('com.tencent.mm:id/fcn').click()time.sleep(5)print('在搜索框输入微信号')driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('ityard')time.sleep(3)print('点击搜索')driver.find_element_by_id('com.tencent.mm:id/ga1').click()time.sleep(3)print('点击添加到通讯录')driver.find_element_by_id('com.tencent.mm:id/g6f').click()简单说一下 , 在代码中我们通过 driver.find_element_by_id('com.tencent.mm:id/xx') 来获取微信上的元素 , 如果有重复的 , 则可以使用 driver.find_elements_by_id('com.tencent.mm:id/xx')[n] 来取 , 通过 send_keys('xx') 实现信息的输入 , 通过 click() 实现点击操作 。
- Win10系统桌面|手机桌面秒变Win10电脑系统,这波操作太给力了!
- wmv|怎么把mp4转wmv?转换视频格式,这样操作很掂
- 试试|手机内存不够用,咋办?试试关闭微信这两步操作,轻松腾出几个G
- 操作|[LIVE On]黄敏贤和郑多彬充满心碎的下午:机器操作每次都不能通过测试
- 天津滨海网|word删除空白页,该怎么操作呢?
- 操作|动用军队“挖”比特币!委内瑞拉秀出神操作,背后原因令人心酸
- 检测|机器视觉检测解决方案商“鼎纳自动化”完成B轮亿元融资
- 融资|鼎纳自动化完成B轮亿元融资
- B轮|帮机器装上眼睛,「鼎纳自动化」完成B轮亿元融资
- 如何基于Python实现自动化控制鼠标和键盘操作
