前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >老板让我创建一百个微信群

老板让我创建一百个微信群

原创
作者头像
IT蜗壳-Tango
发布2023-12-15 22:07:43
1881
发布2023-12-15 22:07:43
举报
文章被收录于专栏:Pandas基础实践Pandas基础实践
老板让我创建一百个微信群
老板让我创建一百个微信群

这里的老板是我凭空想象出来的,但是你有没有想过如何能快速省力的创建好 100 个微信群呢?今天就和我一起来看看如何使用 Python 来完成这件事情吧。

准备工作

需要安装配置好以下开发环境:

  • Python---开发语言
  • Appium--自动化测试工具
  • SDK------让电脑和手机进行交换(也是为了后面查看微信元素。)
  • VSCode 或者 PyCharm

具体的配置环境搭建可以去网上找找,如果需要我出教程可以评论区留言。

这里值得提一句的是 SDK 需要 JAVA 环境,而最新的 JAVA 安装时,已经不会自动安装 JRE 了,这需要我们额外安装,否则在运行 uiautomatorviewer.bat 时会闪退。

实现思路

  • 知道如何创建微信群(为了不打扰别人,我们创建一个只有自己的群)
  • 如何将上面的动作转换成为代码。

首先我们来看看怎么创建一个人的群

  • 在微信界面点击右上角的 + 图标
  • 选择发起群聊
  • 选择面对面建群
  • 输入一个四位密码我们默认从 0001~0100
  • 点击进入群聊
  • 点击右上角 ... 图标
  • 点击群聊名称
  • 输入群名【测试 0001】~ 【测试 0100】
  • 点击完成
  • 点击左上角 < , 回到群聊界面
  • 点击左上角 < ,回到微信主界面

代码实现思路:

  • 主要是利用 Appium 和 Python 来操作微信
  • 关于微信的控件元素,我们使用 uiautomatorviewer.bat 来获取

代码实现

0. 创建代码环境

代码语言:javascript
复制
python -m venv env env\Scripts\activatepip install Appium-Python-Client mkdir src

复制代码

env: 我们创建的虚拟环境,为了和其他工程隔离开

src: 我们用来保存代码的目录

1. 进入微信

代码语言:javascript
复制
from appium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport time
server='http://localhost:4723/wd/hub'# app启动参数desired_caps={  "platformName": "Android",  "deviceName": "Tango",  "appPackage": "com.tencent.mm",  "appActivity": ".ui.LauncherUI",  "noReset":True}
driver = webdriver.Remote(server,desired_caps)

复制代码

4723 是 Appium 默认的端口号 appPackage:我这里用的是微信的包名 appActivity:微信的启动界面 noReset:我不希望将微信的记录清空,因此此处设置了 True

如何查看微信的包名以及启动界面:

手动启动微信放在最前面,

并利用之前配置好的 adb 和以下代码来进行查看

代码语言:javascript
复制
adb shell dumpsys activity activities | findstr Activities

复制代码

根据 tencent 我们可以找到哪一个是微信的东西。

2. 如何查找元素

我们可以利用 uiautomatorviewer.bat 来查看当前手机显示的页面上的各个元素的属性

这个工具位于 SDK 的安装目录-->tools-->bin 下

双击打开,如何环境配置正常的情况下,是可以看到如下界面的

我们点击左上角的第二个图标

如果看到如下错误,可以将后台的 abd 进程全部结束后,重新再打开一次即可

下面是正常的情况,显示的界面

我们选择右上角的图标后,可以很容易的看到这个元素的 ID,这样,我们就可以通过 Appium+Python 来控制他们的点击以及输入了。

完整的工程代码

代码语言:javascript
复制
from appium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport time


class AutoWork():
    def __init__(self) -> None:        server='http://localhost:4723/wd/hub'        # app启动参数        desired_caps={        "platformName": "Android",        "deviceName": "Tango",        "appPackage": "com.tencent.mm",        "appActivity": ".ui.LauncherUI",        "noReset":True        }        self.driver = webdriver.Remote(server,desired_caps)        self.driver.implicitly_wait(10)
    def main(self, pwd):        self.driver.find_element(By.ID, "hyc").click() # 点击加号        time.sleep(2)        self.driver.find_element(By.ID, "ko8").click() # 点击发起群聊        self.driver.find_element(By.XPATH, "//*[@text='面对面建群']/parent::android.widget.LinearLayout").click()
        for pwd_str in pwd:
            self.driver.find_element(By.XPATH, "//*[@text='"+pwd_str+"']").click() # 输入密码
        self.driver.find_element(By.ID, "crd").click() # 进入该群聊        self.driver.find_element(By.ID, "en").click() # 点击 ...        self.driver.find_element(By.XPATH, "//*[@text='未命名']").click()        self.driver.find_element(By.ID, "gyf").send_keys(f"测试{pwd}")        self.driver.find_element(By.ID, "hfl").click() # 点击完成        time.sleep(3)        self.driver.find_element(By.ID, "fz").click() # 返回        time.sleep(1)        self.driver.find_element(By.ID, "fz").click() # 返回

if __name__ == "__main__":    mp = AutoWork()    for i in range(1, 101):        if i < 10:            pwd = f"000{i}"        elif i < 100:            pwd = f"00{i}"        else:            pwd = f"0{i}"        mp.main(pwd)

复制代码

最后的话

在实际测试过程中,当创建了很多个只有一个人的群后,会出现“无法进入该群”的消息,所以为了稳妥,就好还是选择拉人进群的方式比较好,可以拉自己的小号来创建。

好了今天的内容就是这些,感谢你的阅读,如果本文对你有所帮助,欢迎转发给你的朋友。

我是 Tango,一个热爱分享各种技术的程序猿,我们下期见。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 实现思路
  • 代码实现
    • 0. 创建代码环境
      • 1. 进入微信
        • 2. 如何查找元素
        • 完整的工程代码
        • 最后的话
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档