click("发送"); 发送按钮经常点击不到

click("发送"); 发送按钮经常点击不到 就是那种输入才变化的按钮 经常检测不到 怎么处理?

管理员

首先确定 text为"发送"的控件的clickable 为 true
其次判断 text为"发送"的控件的enable 为 true

有时候控件识别不到, 就像QQ ,发送按钮 ,一输入就变成发送 不输入就是+ ,经常快速切换界面就识别不到了 ,非得点一下当前界面才行, 不知道什么原因

管理员

@leooomy 那是你代码逻辑的问题,输入内容的时候 才会变, 你不输入的时候 怎么会有 发送按钮.

@dcrclub 他说的这个问题确实存在,我也遇到过,后来看教程用while(!click("发送"))才可以,这句话也没具体弄明白什么原因

@mrhiat
你说错了大兄弟 !你应该没有更好的解读代码,不是代码的问题!
click("发送") 这个是单次点击
如果运行到这个点击代码的时候发送按钮没有出现那么它就会完美错过而运行其他代码

while(!click("发送"))这个是循环检测是否点击了

首先理解click
click点击后返回是否点击成功。当屏幕中并未包含该文本,或者该文本所在区域不能点击时返回false,否则返回true。

然后理解while
while循环是你得给个teur也就是(真)才会一直循环里面的命令。
关键来了(!)这个符号在auto.js是代表假也就是false。

在然后理解整体语句while(!click("发送"))

循环(假 点击("文本"))
这里点击("文本")记住前面说的要记点击有返回值的!

在在然后命令解读

循环 点击("文本")返回值为 假 时 而(!)为假 假=假 成立一直循环
也就是点击("文本")没有成功所以一直在这句代码循环执行

循环 点击("文本")返回值为 真 时 而(!)为假 真=假 ?吗 肯定不成立了也就不循环了
也就是点击("文本")点击成功 就会跳循环

这个代码是大神缩写的。应该多理解命令

不简写例子如下可以自行测试:
a = false
while(!a){
a=click("发送")
if(!a){toast("没有点击成功继续循环")};
if(a){toast("点击成功退出循环")};
sleep(3000)
}

最后由 1912380084 编辑
管理员

@mrhiat 这都不是问题。问题就是你不知道逻辑应该怎么写

@1912380084 非常感谢,说的很透彻,由于速度快,输入文本之后,按钮还来不及转变,所以就出现找不到"发送",所以就没法点击。

@dcrclub 逻辑对的,但是 是不可靠逻辑😄,用while循环就能保证绝对可靠了。

  • 9
    帖子
  • 349
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待