这里的老板是我凭空想象出来的,但是你有没有想过如何能快速省力的创建好 100 个微信群呢?今天就和我一起来看看如何使用 Python 来完成这件事情吧。
需要安装配置好以下开发环境:
具体的配置环境搭建可以去网上找找,如果需要我出教程可以评论区留言。
这里值得提一句的是 SDK 需要 JAVA 环境,而最新的 JAVA 安装时,已经不会自动安装 JRE 了,这需要我们额外安装,否则在运行 uiautomatorviewer.bat 时会闪退。
首先我们来看看怎么创建一个人的群
代码实现思路:
python -m venv env env\Scripts\activatepip install Appium-Python-Client mkdir src
复制代码
env: 我们创建的虚拟环境,为了和其他工程隔离开
src: 我们用来保存代码的目录
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 和以下代码来进行查看
adb shell dumpsys activity activities | findstr Activities
复制代码
根据 tencent 我们可以找到哪一个是微信的东西。
我们可以利用 uiautomatorviewer.bat 来查看当前手机显示的页面上的各个元素的属性
这个工具位于 SDK 的安装目录-->tools-->bin 下
双击打开,如何环境配置正常的情况下,是可以看到如下界面的
我们点击左上角的第二个图标
如果看到如下错误,可以将后台的 abd 进程全部结束后,重新再打开一次即可
下面是正常的情况,显示的界面
我们选择右上角的图标后,可以很容易的看到这个元素的 ID,这样,我们就可以通过 Appium+Python 来控制他们的点击以及输入了。
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,一个热爱分享各种技术的程序猿,我们下期见。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。