首页 > 其他分享 >这是我在51CTO博客的第一篇博文

这是我在51CTO博客的第一篇博文

时间:2023-01-13 14:08:13浏览次数:57  
标签:51CTO 第一篇 博文 driver find mm tencent com id

这是我在51CTO博客的第一篇博文

一、自我介绍

友友们好,这是我第一次在51cto写作,在读学生一枚,希望大家多多关照。

二、技术分享

初来乍到,先给大家分享一些简单的内容。

用Python找出了删除自己wx的所有人并将他们自动化删除了

你是否有wx被删了好友不自知,还傻傻的给对方发消息,结果出现了下图中那尴尬的一幕的经历呢?其实我们可以用Python提前把他们找出来并自动化删除避免尴尬的。 为了避免再次出现上述情况,我决定把wx通讯录中删除了自己的人全部找出来并且删除,之前我已经在网上了解到检查自己的微信是否被删比较好的方式就是转账,通过转账我们可以实现无痕检测。 编程实现的基本思路如下:

获取wx通讯录列表中每个人的名字(备注)并记录,这个是不会有重复的,因为即使在之前加好友时有重复的,自己也会在备注时给改了

遍历获取到的通讯录列表,分别对每一个人执行转账操作,如果检测到是删除自己的人就对其执行删除操作,如果检测到不是删除自己的人则继续检测下一个人,依次往复循环

环境 因之前在模拟器上测试 Appium 模拟wx转账可能有点问题,因此本文使用真机实现。

先简单介绍一下真机环境,下面一起来看一下相应步骤。

打开微信登录自己的微信号

在手机中依次执行(点击):设置->我的设备->全部参数->MIUI版本(多次点击,开启开发者模式)->返回设置列表->更多设置->开发者选项->开启开发者选项并分别开启:USB调试、USB安装、USB调试(安全设置)选项, 在电脑 CMD 中执行 adb devices 命令,看是否能找到自己的手机 上面步骤中你可能出现找不到手机的情况,通常这种情况是驱动问题,这里介绍一种简单的处理方式:下载一个驱动精灵,安装启动之后点击驱动管理,之后安装相应驱动即可解决 通过上面的一系列操作,我们已经处理好了真机环境了。

Appium 的环境本文就不说了,如果不清楚的话,可以看一下:环境 首先看一下相应参数配置,代码实现如下:

    "platformName": "Android", # 系统
    "platformVersion": "8.0.0", # 系统本号
    "deviceName": "m5s", # 设备名
    "appPackage": "com.tencent.mm", # 包名
    "appActivity": ".ui.LauncherUI", # app 启动时主 Activity
    'unicodeKeyboard': True, # 使用自带输入法
    'noReset': True # 保留 session 信息,可以避免重新登录
}


接着看一下如何获取wx通讯录名字(备注)列表?代码实现如下:

def get_address_list():
    driver.find_elements_by_id('com.tencent.mm:id/cn_')[1].click()
    # 获取昵称(备注)
    address_list = driver.find_elements_by_id('com.tencent.mm:id/dy5')
    remarks = []
    for address in address_list:
        remark = address.get_attribute("content-desc")
        # 排除自己和微信官方号
        if remark != "自己的微信名" and "微信" not in remark:
            remarks.append(remark)
    return remarks


取到了wx通讯录列表之后,我们就可以对其进行遍历检测了,下面看一下如何实现检测自己的微信是否被删,代码实现如下:

def is_delete(remark, count):
    if count == "1":
        time.sleep(2)
        print('点击微信搜索框')
        driver.find_element_by_id('com.tencent.mm:id/cn1').click()
    time.sleep(2)
    print('在搜索框输入搜索信息')
    driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(remark)
    time.sleep(2)
    print('点击搜索到的好友')
    driver.find_element_by_id('com.tencent.mm:id/tm').click()
    time.sleep(2)
    # 转账
    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)
    # 判断是否被删
    is_exist = is_element_exist('com.tencent.mm:id/jh')
    if is_exist is True:
        return remark
    else:
        return False


上述方法中,如果检测到是删了自己wx的人就返回那个人的微信名(备注),然后我们将这些人记录起来;如果检测到不是删除自己微信的人就返回 False。

上述过程执行完了之后,我们就可以获取到所有删了自己微信的人了,接下来我们就可以将这些人都从自己微信通讯录中删除了,删除实现的代码如下:

def del_person(nicks):
    for inx, val in enumerate(nicks):
        time.sleep(2)
        if inx == 0:
            print('在搜索框输入搜索信息')
            driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val)
        else:
            time.sleep(2)
            print('点击微信搜索框')
            driver.find_element_by_id('com.tencent.mm:id/cn1').click()
            print('在搜索框输入搜索信息')
            time.sleep(1)
            driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val)
        time.sleep(2)
        print('点击搜索到的人')
        driver.find_element_by_id('com.tencent.mm:id/tm').click()
        time.sleep(2)
        print('点击聊天对话框右上角...')
        driver.find_element_by_id('com.tencent.mm:id/cj').click()
        time.sleep(2)
        print('点击头像')
        driver.find_element_by_id('com.tencent.mm:id/f3y').click()
        time.sleep(2)
        print('点击联系人右上角...')
        driver.find_element_by_id('com.tencent.mm:id/cj').click()
        time.sleep(2)
        print('点击删除按钮')
        driver.find_element_by_id('com.tencent.mm:id/g6f').click()
        time.sleep(2)
        print('点击弹出框中的删除')
        driver.find_element_by_id('com.tencent.mm:id/doz').click()


至此,我们就利用 Python + Appium 实现了自动化找出微信中删除自己的人并将其删除的工作了。 以上内容均参考文章,自己研究,如有雷同,纯属巧合。

三、立一个flag!

新的一年,希望和大家一起努力,更好的学习。

标签:51CTO,第一篇,博文,driver,find,mm,tencent,com,id
From: https://blog.51cto.com/u_15861116/6005892

相关文章

  • R-CNN系列目标检测博文汇总Fast R-CNN(理解)
    R-CNN​【深度学习】R-CNN论文解读及个人理解​​【目标检测】RCNN算法详解​​R-CNN论文翻译解读​总之,R-CNN取得成功的两个关键因素:1:在候选区域上自下而上使用大型卷积神......
  • dockder 学习第一篇
    1docker安装1yum包的更新到最新yumupdate2安装需要软件包,yum-util[root@localhost~]#yuminstall-yyum-utilsdevice-mapper-persistent-datalvm23设置......
  • 第一篇博客
     作为一名大一计算机专业的学生,还是第一次真真切切的去了解,学习计算机。相较众多专业,我还是比较喜欢和好奇计算机专业,想知道游戏是怎样做出来的,软件是怎样开发出来,......
  • 第一篇blog“MarkDown学习”
    MarkDown学习 标题 字体点击每行字即可查看Hello,World!Hello,World!Hello,World!Hello,World!Hello,World! 引用">"+空格选择狂神说Java 分割线......
  • 2023-01-02 新年第一篇,反向线段如何生成(反向线段生成,参考之前的线段和笔的空头萌发)
    反向线段生成,参考之前的线段和笔的空头萌发1.向上线段,害怕反向笔,因为可以一笔跌穿2.向上线段,害怕同向不出新高的笔,因为可以生成反向线段  ......
  • LaTeX学习:第一篇LaTeX文档
    LaTeX是一种非所见即所得的排版方式,入门相对word要难很多,但是排版出来的效果美观统一,不会像word因为版本的差异而出现排版错乱。配置LaTeX环境LaTeX环境的配置实际上就可......
  • 2023新年第一篇随笔(聊聊基金理财)
    2023年1月1日,是新年的第一天,祝大家新年快乐!今天突然想写点东西,就主要围绕去年刚接触的基金谈起吧,2022年4月9号,我在B站无意中发现up遇见狂神说(up是我大学生活中......
  • 第一篇论文投稿的收获与总结
    posted@2020-02-0115:21前段时间总算是向IJCAI-20会议投出了人生的第一篇论文。这篇投稿个人看来还是有很多漏洞和不足之处,但也算是完成了个人前进的一小步吧,后续还......
  • 2022年博文总结和2023年技术趋势预测
    2022年博文记录编写原创技术文章25篇,主要集中在原子样式设计专题、API设计专题和产品思考阅读量较多的文章是【原子样式实践】第12篇一次搞定微信开发者工具的原子......
  • Spring Boot2.x 学习导航大纲以及整合的插件学习(如mybatis/shiro等)-Boot整套前端由0到
    文章目录​​一、导言​​​​第一章、Java环境搭建及常用软件篇​​​​第二章、springboot搭建及学习篇​​​​第三章、springboot整合web篇​​​​第四章、springboot......