1. summary
I don't know if you have ever sent a message to someone in your address book on wechat , It turned out to be this scene :
I always think that my heart quality is excellent , But in this case ...
After I was half an hour late ( Half a minute ) after , Slowly took out the mobile phone , Open the WeChat , Find... In the address book ABC
, Press the delete button silently , At the moment, my heart is still ...
Okay , Let's get back to business , To avoid this happening again , I decided to find out all the people who deleted themselves from the wechat address book and delete them , I have learned on the Internet that the better way to check whether my wechat has been deleted is to transfer money , By transferring money, we can achieve traceless detection .
Let's take a look at the effect of transferring money to others before and after wechat is deleted through two pictures :
Now we know how to detect it , Just when I was ready to test one by one , Unconsciously slide the wechat address list ,100、200 ... 500 ...
I went to ! When did you add so many people , While sliding the list, I glanced at the wechat name :A Selling insurance 、B Apply for credit card 、C Swimming fitness 、D Selling health products ... Now I know the secret of so many people in the wechat address book , But there's a problem , With so many people, I'm not tired to transfer money manually one by one ...
If manual execution doesn't work , So can it be automated by programming ? Thinking about it, I was lost in thought ...
Suddenly there was a flash in my head ( It's not a cramp ), My mind is getting clearer , I didn't write an article the other day Python + Appium Introduction to automatic operation of wechat Do you ? It should be possible to use this , The basic idea of programming is as follows :
- Get the name of everyone in the wechat address book list ( remarks ) And record , There will be no repetition of this , Because even if you add friends before, there are repeated , I will also change it in the remarks
- Traverse to get the address list , Transfer to each person separately , If it is detected that it is the person who deleted himself, delete it , If you detect someone who is not deleting yourself, continue to detect the next person , It goes back and forth in turn
2. Environmental Science
Because it was tested on the simulator before Appium There may be some problems with the simulated wechat transfer , Therefore, this paper uses the real machine to realize .
Let's briefly introduce the real machine environment , Let's take a look at the corresponding steps .
- Take my millet from the corner of the table 5s mobile phone (MIUI10.2、Android8.0.0), Wipe the dust and connect it to your computer with a data cable
- The phone is powered on after charging for a while , Open wechat and log in to your own wechat
- In the mobile phone, execute in turn ( Click on ): Set up -> My device -> All parameters ->MIUI edition ( Click the , Open developer mode )-> Back to the settings list -> More Settings -> Developer options -> Turn on the developer option and turn it on separately :USB debugging 、USB install 、USB debugging ( Security Settings ) Options , As shown in the figure :
- At this time, the phone will pop up USB The purpose of the pop-up frame , We choose to transfer files (MTP) that will do , As shown in the figure :
- On computer CMD In the implementation of
adb devices
command , See if you can find your mobile phone , For example, the following figure shows the result of success
- In the above steps, you may not find the mobile phone , Usually this is a driving problem , Here's a simple way to deal with it : Download a driver wizard , After the installation starts, click driver management , After that, install the corresponding driver to solve the problem , As shown in the figure :
Through the above series of operations , We've taken care of the real environment .
Appium This article will not talk about the environment of , If you don't know , You can look at it :Python + Appium Introduction to automatic operation of wechat .
3. Realization
Now let's start typing code manually , If the Appium If you don't understand the basic code operation , You can still go and have a look at this article I wrote before :Python + Appium Introduction to automatic operation of wechat .
First of all, take a look at the corresponding parameter configuration , The code implementation is as follows :
desired_caps = {
"platformName": "Android", # System
"platformVersion": "8.0.0", # System number
"deviceName": "m5s", # Device name
"appPackage": "com.tencent.mm", # Package name
"appActivity": ".ui.LauncherUI", # app When it starts, it's mainly Activity
'unicodeKeyboard': True, # Use your own input method
'noReset': True # Retain session Information , You can avoid logging back in
}
Let's take a look at how to get the name of wechat address book ( remarks ) list ? The code implementation is as follows :
# Get address list
def get_address_list():
driver.find_elements_by_id('com.tencent.mm:id/cn_')[1].click()
# Get a nickname ( remarks )
address_list = driver.find_elements_by_id('com.tencent.mm:id/dy5')
remarks = []
for address in address_list:
remark = address.get_attribute("content-desc")
# Exclude yourself and wechat official number
if remark != " My wechat name " and " WeChat " not in remark:
remarks.append(remark)
return remarks
After getting the wechat address list , We can traverse it , Let's take a look at how to detect whether your wechat has been deleted , The code implementation is as follows :
# Judge whether it has been deleted
def is_delete(remark, count):
if count == "1":
time.sleep(2)
print(' Click on the wechat search box ')
driver.find_element_by_id('com.tencent.mm:id/cn1').click()
time.sleep(2)
print(' Enter the search information in the search box ')
driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(remark)
time.sleep(2)
print(' Click on the friends you found ')
driver.find_element_by_id('com.tencent.mm:id/tm').click()
time.sleep(2)
# Transfer accounts
driver.find_element_by_id('com.tencent.mm:id/aks').click()
time.sleep(2)
driver.find_elements_by_id('com.tencent.mm:id/pa')[5].click()
time.sleep(2)
driver.find_element_by_id('com.tencent.mm:id/cx_').click()
time.sleep(2)
driver.find_element_by_id('com.tencent.mm:id/cxi').click()
time.sleep(5)
# Judge whether it has been deleted
is_exist = is_element_exist('com.tencent.mm:id/jh')
if is_exist is True:
return remark
else:
return False
In the above methods , If it is detected that the person who deleted his / her wechat is returned to that person's wechat name ( remarks ), And then we record these people ; If it is detected that the person who did not delete his / her wechat is returned False.
After the above process has been carried out , We can get all the people who deleted their wechat , Then we can delete these people from our wechat address book , The code to delete the implementation is as follows :
# Delete the person who deleted himself
def del_person(nicks):
for inx, val in enumerate(nicks):
time.sleep(2)
if inx == 0:
print(' Enter the search information in the search box ')
driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val)
else:
time.sleep(2)
print(' Click on the wechat search box ')
driver.find_element_by_id('com.tencent.mm:id/cn1').click()
print(' Enter the search information in the search box ')
time.sleep(1)
driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val)
time.sleep(2)
print(' Click on the person you search for ')
driver.find_element_by_id('com.tencent.mm:id/tm').click()
time.sleep(2)
print(' Click on the top right corner of the chat dialog box ...')
driver.find_element_by_id('com.tencent.mm:id/cj').click()
time.sleep(2)
print(' Click on the picture ')
driver.find_element_by_id('com.tencent.mm:id/f3y').click()
time.sleep(2)
print(' Click on the top right corner of the contact ...')
driver.find_element_by_id('com.tencent.mm:id/cj').click()
time.sleep(2)
print(' Click the delete button ')
driver.find_element_by_id('com.tencent.mm:id/g6f').click()
time.sleep(2)
print(' Click delete in the pop-up box ')
driver.find_element_by_id('com.tencent.mm:id/doz').click()
thus , We'll use it Python + Appium It can automatically find out the people who delete themselves in wechat and delete them .
Source code in the public name Python waiter The background to reply 201108 obtain .