uiautomator2+adb shell input tap 实现微博自动取消关注
很久没有玩微博了,最近无意间打开微博想刷刷新闻,不看不知道一看吓一跳,我关注的人既然超过了一千多人,我的天,我什么时候关注了这么多人?我立即进入我关注的人寻找批量取消关注按钮,当时我恨不得直接全部删除,遗憾的是,我找了半小时都没有找到能一键取消所有的关注,555…… ,百度一番,网友介绍可以使用微博反垃圾修正关注,于是我抱着信心去修正我的关注了,可是……一个月只能修正一次,而且一次只修掉了几个或十几个人…………我……,于是乎我被迫打开sublime,然后写下了import uiautomator2……
首先导入需要的库:
import uiautomator2 as u2
import time
import subprocess
import re
第一步,打开微博进入我的关注页面,获取‘已关注“按钮的坐标:
def auto():subprocess.run("adb shell am start com.sina.weibo/com.sina.weibo.MainTabActivity")time.sleep(1)device(description="我").click()device(resourceId="com.sina.weibo:id/cabFollow").click()device(text="关注的人").click()time.sleep(0.5)#获取所有”已关注“按钮信息for i in device(text="已关注"):data = i.infodata = str(data)#通过正则获取x和y坐标com = re.compile(".*?left':(.*?),.*?")com_1 = re.compile(".*?top':(.*?)}.*?")left = re.findall(com, data)top = re.findall(com_1, data)return left[0], top[0]
在auto方法里,我开始是使用uiautomator2 库去点击”已关注“按钮,本以为这样就可以愉快的自动取消关注了,可……人算不如天算啊!uiautomator2点不上”已关注“这个按钮,后面经过多轮的测试,我发现原来是uiautomator2里点击方法压下按钮到松开按钮时间太久了,也就是点击太慢……这这这 怎么办了?
于是无奈使用”adb shell input tap“,通过按钮的x y 坐标去点击按钮,但又有一个新的问题,我并不能确定每把手机的屏幕都是相同分辨率,在沉思了片刻后,我突然想到uiautomator2虽然无法点击”已关注“按钮,但我可以通过它获取”已关注“按钮的坐标啊!话落就干,盘它……
第二步,点击”已关注“按钮,如果当前页面没有”已关注“按钮,就滑动屏幕:
def main():while True:try:while True:data = auto()subprocess.run("adb shell input tap {} {}".format(data[0], data[1]))device(text="确定").click()except:subprocess.run("adb shell input swipe 100 400 100 100")
效果:
最后还是那句话,人生苦短,我用python,预祝我们早日成为大神………………
更多文章、小工具请访问我的个人博客:https://www.zztdd.cn/
uiautomator2+adb shell input tap 实现微博自动取消关注相关推荐
- adb shell input(系统服务:input)
adb shell input 模拟登陆,需要使用如下命令 备注:"开发者选项" - "指针位置"打开后,可以获取坐标值 用途一: adb shell inpu ...
- adb模拟三指划动,ADB命令系列之 adb shell input(Android模拟输入)简单总结
最近开发一个新的接口,在调试的时候要手动输入蛮多参数,关键是参数又都太长,就专门看了下 adb 有木有模拟输入,果然adb shell里是有的.这样以后开发调试.自动化测试等就更加方便了.专门简单总结 ...
- adb inputswipe shell_android adb shell input各种妙用
项目中使用一个开发版,预留两个usb接口.类似华硕TinkerBoard. 一个用户连接摄像头,一个用于adb调试.结果就没了鼠标的接口. 多次切换鼠标和摄像头插头,非常不方便,带摄像头的app没法调 ...
- 我的Android进阶之旅------gt;Android中通过adb shell input来模拟滑动、按键、点击事件...
今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点.好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框, ...
- adb shell input text 完美支持中文输入
adb 默认是不支持Unicode编码的,无法通过adb shell input text 命令输入中文到手机或模拟器 解决中文输入 还得感谢老外写了一个输入法,源码地址:https://github ...
- appium---操作手机按键(adb shell input keyevent )
通常在做app测试的时候,我们都会用到一些开机键,返回键,home键等一系列的操作来帮助我们测试,那么在自动化中如何实现这些呢? keyevent keyevent表示android中的模拟手机的一些 ...
- adb inputswipe shell_[Android]通过adb shell input上报命令模拟屏幕点击事件【转】
常用的 input上报命令: input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果 input keyevent 4 键盘事件,4 为返回 input tap 100 ...
- [Android]通过adb shell input上报命令模拟屏幕点击事件
常用的 input上报命令: input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果 input keyevent 4 键盘事件,4 为返回 input tap 100 ...
- adb shell input text 中文输入方法
adb输入中文问题:adb不支持unicode字符,只支持ASICC字符.所以直接输入汉字会报错 那么可以用ADBKeyBoard.apk 下载地址https://pan.baidu.com/s/1z ...
最新文章
- 产品经理要读什么书?怎么读?
- 理解AMD ,CMD,CommonJS规范
- 基于mysql的主从复制之Mycat简单配置和高可用
- 2.mysql优化---增删改优化
- c语言3种链接属性: 外部(external), 内部(internal),无设置(none)
- python ide如何运行_ide - 如何运行Python程序?
- angularjs php 实例下载,AngularJS Eclipse 1.2.0 插件下载
- 基于JAVA+SpringMVC+MYSQL的在线考试系统
- mysql无法通过工具连接_MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题...
- 黑马十次方2.0项目
- excel power bi 常用函数
- linux 计算cpu利用率
- HTML设置文字的格式
- 利用XMLHTTP实现ASP.NET无刷新提交 (老梁)
- 百忙之中抽空看了下最近几个月问的比较多的问题(为了不让一些朋友继续走弯路)...
- 计算机中函数vlookup怎么用,教您使用excel函数vlookup
- matlab 色温图,技术:图文教你了解色温及如何选择色温
- ogg高版本到低版本同步
- python_day11(笔记及练习)
- HaaS EDU物联网教育开发板来啦!漂亮的不像开发板!