因为某种原因,需要在微信上添加大量的好友,打开微信,添加,添加好友,搜索,输入微信号,搜索,添加备注。
一阵操作下来,黄花菜都凉了,我看着我都着急,这可是有10000多的好友呀!!!
假如平均每5分钟添加一个好友,就需要50000分钟,833小时,假如每天算8小时,不停的添加好友。104天,每月30天,大概3个月就可以添加完成,到时候,我想你已经吐了。
想想,3个月时间,我们可以做什么,我们可以提升一个王者段位,可以外出旅行,可以多陪陪家人。
而现在,你距离你的梦想又救了一步,只需要一个程序,你就可以搞定手动添加好友的尴尬。让他自己动。
首先,我们来准备环境!
1.jdk
2.sdk
3.appium
4.node.js
5.一部手机,当然是智能手机。
6.一条数据线。
相关环境后期会做补充,这次主要是程序。
好,那下面看代码:
from appium import webdriver import time import xlrd
def is_content_Appeared(driver,content): try: driver.find_element_by_name(content) status=True except: status = False return status
desired_caps = { 'platformName': 'Android', 'deviceName': '232342232343', 'platformVersion': '7.0',#将要测试app的安装包放到自己电脑上执行安装或启动,如果不是从安装开始,则不是必填项,可以由下面红色的两句直接启动 'appPackage': 'com.tencent.mm', #红色部分如何获取下面讲解 'appActivity': 'com.tencent.mm.ui.LauncherUI', 'unicodeKeyboard': 'True', #此两行是为了解决字符输入不正确的问题 'resetKeyboard': 'True', #运行完成后重置软键盘的状态 'autoWebview':'True', 'recreateChromeDriverSessions':'True', 'automationName':'Appium' } j,y=1,1000 list=[] driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) for x in range(1,5): try: time.sleep(3) driver.find_element_by_id("com.tencent.mm:id/g_").click() time.sleep(3) driver.find_element_by_name("添加朋友").click() driver.find_element_by_id("com.tencent.mm:id/ht").click() xlsfile = r'C:\好友.xls' book = xlrd.open_workbook(xlsfile) # 获得excel的book对象 sheet_name = book.sheet_names()[0] # 获得指定索引的sheet名字 sheet = book.sheet_by_name("Sheet1") for i in range(j,y): try: time.sleep(20) cell_value = int(sheet.cell_value(i, 2))#获取电话号码 print(cell_value) driver.find_element_by_id("com.tencent.mm:id/ht").send_keys(cell_value)#输入电话号码 time.sleep(3) driver.find_element_by_id("com.tencent.mm:id/ayp").click() time.sleep(3) if is_content_Appeared(driver,"添加到通讯录" )==True: if is_content_Appeared(driver,"设置备注和标签")==True: driver.find_element_by_name("设置备注和标签").click() time.sleep(3) driver.find_element_by_name("添加标签对联系人进行分类").click() time.sleep(3) cell_value1 = sheet.cell_value(i, 3) # 获取标签名 driver.find_element_by_name("添加标签").send_keys(cell_value1) time.sleep(3) driver.find_element_by_name("保存").click() time.sleep(3) driver.find_element_by_id("com.tencent.mm:id/hy").click() time.sleep(3) driver.find_element_by_name("添加到通讯录").click() time.sleep(3) driver.find_element_by_id("com.tencent.mm:id/d0n").clear()#清除备注名 time.sleep(3) ell_value2 = sheet.cell_value(i, 0) ell_value3 = sheet.cell_value(i, 1) driver.find_element_by_id("com.tencent.mm:id/d0n").send_keys(ell_value2+"("+ell_value3+")")#输入被备注名 time.sleep(3) driver.find_element_by_name("发送").click() time.sleep(3) print("成功发送验证消息!") driver.find_element_by_name("返回").click() time.sleep(3) else: driver.find_element_by_name("添加到通讯录").click() time.sleep(3) driver.find_element_by_id("com.tencent.mm:id/d0n").clear() # 清除备注名 time.sleep(3) ell_value2 = sheet.cell_value(i, 0) ell_value3 = sheet.cell_value(i, 1) driver.find_element_by_id("com.tencent.mm:id/d0n").send_keys( ell_value2 + "(" + ell_value3 + ")") # 输入被备注名 time.sleep(3) driver.find_element_by_name("发送").click() time.sleep(3) print("成功发送验证消息!") driver.find_element_by_name("返回").click() time.sleep(3) elif is_content_Appeared(driver,"该用户不存在")==True: print("该用户不存在") driver.find_element_by_id("com.tencent.mm:id/ht").clear() time.sleep(3) elif is_content_Appeared(driver,"发消息")==True: print("该用户已经添加为好友") driver.find_element_by_name("返回").click() time.sleep(3) elif is_content_Appeared(driver,"操作过于频繁,请稍后再试")==True: print("操作过于频繁,今天可能不能再添加好友,程序退出") driver.quit() break else: driver.save_screenshot("D:\\app"+i+".png") print("其他情况") except Exception as e: j=i driver.quit() time.sleep(3) driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) continue except Exception as e: list.append(e) driver.quit() time.sleep(3) driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) continue break driver.quit()