用按键精灵手机版写脚本来操作新浪微博APP,在关注列表页自动取消关注,代码如下:
If x > -1 And y > -1 Then
delay 1000
tap x,y
delay 1000
End If
列表页面里的“√已关注”按钮用找色找到坐标,用tap或touch,touchdown和touchup组合命令怎么也点了,界面没反应。但录制的脚本是可以的,录制的脚本使用的是TouchDownEvent和TouchUpEvent组合,这两个命令竟然没在官方的手册里。
于是将TouchDownEvent和TouchUpEvent组合来替换Tap命令,代码如下,发现还是不行。
If x > -1 And y > -1 Then
Delay 2000
TouchDownEvent x, y, 0
Delay 1000
TouchUpEvent 0
Delay 1000
End If
研究录制的代码,发现它还用了TickCount()命令。。。于是照抄,代码变成了这样:
If x > -1 And y > -1 Then
Delay 2000
TouchDownEvent x, y, 0
Delay 1000-TickCount()
TouchUpEvent 0
Delay 1000
End If
发现代码依然跑起来,界面无反应?我都是直接抄了录制后的代码,为什么还是不行!
只剩坐标值的问题了,用抓抓工具直接取“√已关注”*部分的坐标值后带入x,y,发现按钮是有反应的!
输出一下原代码找色找到的坐标,发现焦点落在了“√已关注”按钮的对勾上左边一角顶端,已靠近按钮的边缘,但是该坐标是落在按钮上的!
试着重新用抓抓工具找点,把找到的坐标点调整到靠近按钮*。
调试通过。。。
实验中还发现,去掉第二行Delay 2000,或者把2000改为别的数值,也有一定几率无法点到“√已关注”;去掉TickCount(),一定无法点到“√已关注”,查手册TickCount()返回的是代码运行的时间数值,按理说直接Delay一个合理的数值就OK,但是改成任何延时就是无法点击,令人费解。