大家好,我是10年码农大兵,目前是一位RPA定制开发者,计划帮忙开发并开源20个RPA机器人项目,如果您有rpa或相关自动化开发需求,欢迎发私信和我交流。
本次开源的RPA项目是:手机微信批量添加好友机器人
需求描述
通过影刀实现模拟人工在手机上自动批量添加微信好友
开发环境:
软件:
影刀ShadowBot-5.20.22-x64.exe
设备:
小米手机note3
手机app:
手机微信V8.0.50
其他:
联系人exel模版
功能实现:
影刀新增应用
选择手机自动化
新建python模块
复制以下的源码到新建的python模块module1.py文件中
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
from xbot.mobile import appium
from xbot import excel
from datetime import datetime
import random
def sendAddWxFriend(row,index,worksheet,session):
print("开始执行添加好友")
print(row)
#姓名
uname = row[0]
#手机或微信号
uid = row[1]
sendContent = row[2]
if sendContent is None or sendContent == '':
sendContent ="你好"
#是否已发送
isSend = row[4]
if isSend is not None:
return
result = toMobelAdd(uname,uid,sendContent,session)
isok = result["isok"]
msg = result["msg"]
#申请时间
now = datetime.now()
nowTime = now.strftime('%Y-%m-%d %H:%M:%S')
worksheet.set_cell(index, 'D', nowTime)
if(isok == True):
worksheet.set_cell(index, 'E', '是')
if(isok == False):
worksheet.set_cell(index, 'E', '否')
#失败原因
worksheet.set_cell(index, 'F', msg)
wait_time = random.randint(120, 200)
print(f"等待{wait_time}秒")
sleep(wait_time)
def toMobelAdd(name,uid,sendContent,session):
result = {
"isok": True,
"msg": ""
}
try:
#点击输入账号或手机输入框
element = session.find_by_id("com.tencent.mm:id/mmz")
element.click()
sleep(1)
#输入账号或手机输入框
element = session.find_by_id("com.tencent.mm:id/d98")
element.input(uid)
sleep(1)
#点击搜索
element = session.find_by_id("com.tencent.mm:id/o_q")
element.click()
sleep(2)
#选择第一个
#element = session.find_by_id("com.tencent.mm:id/cfq")
#element.click()
sleep(1)
#添加到通讯录
try:
element = session.find_by_id("com.tencent.mm:id/o3b")
except Exception as e:
print("搜索不到")
result["msg"] = "用户不存在"
result["isok"] = False
session.back()
return result
element.click()
sleep(1)
#验证消息输入框
element = session.find_by_id("com.tencent.mm:id/m9y")
element.input(sendContent)
sleep(1)
#设置标签
element = session.find_by_id("com.tencent.mm:id/cd6")
element.click()
sleep(2)
#选择标签
element = session.find_by_text("标签")
element.click()
sleep(1)
#右上角的保存
element = session.find_by_id("com.tencent.mm:id/fp")
element.click()
sleep(1)
#发送按钮
element = session.find_by_id("com.tencent.mm:id/g68")
element.click()
sleep(1)
session.back()
sleep(1)
session.back()
except Exception as e2:
print(e2)
result["msg"] = "程序异常"
result["isok"] = False
session.back()
sleep(2)
session.back()
return result
def main(args):
workbook = excel.open('C:\\微信联系人.xlsx', kind='auto_check', visible=True)
worksheet = workbook.get_sheet_by_index(1)
session = appium.connect_by_custom_name('Mi Note 3')
session.open_app("com.tencent.mm")
sleep(1)
#通讯录
elements = session.find_all_by_id("com.tencent.mm:id/h6y")
element = elements[1]
element.click()
sleep(1)
#添加按钮
elements = session.find_all_by_id("com.tencent.mm:id/h5n")
element = elements[1]
element.click()
sleep(1)
#添加朋友按钮
elements = session.find_all_by_id("com.tencent.mm:id/obc")
element = elements[1]
element.click()
sleep(1)
firstColumn = worksheet.get_column(1)
columnLen = len(firstColumn)
data = worksheet.get_range(2, 'A', columnLen, 'F')
print(data)
for i in range(len(data)):
if data[i][0] is None:
break
sendAddWxFriend(data[i],i+2,worksheet,session)
workbook.save()
workbook.close()
电脑连接手机,修改相关源码的excel路径及要连接的手机设备名称,点击运行