說明檔 click(left, top, bottom, right) 有誤

將以下得到的值
Rect.left
Rect.right
Rect.top
Rect.bottom

依照說明檔的指示放進
click(left, top, bottom, right)

結果:點擊失敗
解決:正確的順序應該是click(left, to, rightp, bottom) ,也就是把bottom, right兩者順序互調

注意,该函数一般只用于录制的脚本中使用,在自己写的代码中使用该函数一般不要使用该函数。

因為控件是imageview and clickable=false , 試著點擊但沒反應
var w = className("ImageView").findOnce(1).click()

用以下就可以成功
var w = className("ImageView").findOnce(1).bounds();
click(w.left, w.top, w.right, w.bottom);

如果只用座標,一旦屏幕大小不同就會點錯。 請教有其他方式嗎?

var w = className("ImageView").findOnce(1).bounds();
click(w.centerX(),w.centerY());

click(w.centerX(),w.centerY());
這個方法試過了,出現錯誤訊息說: 要安卓 7以上才能使用。 我的系統是安卓6

@payne說明檔 click(left, top, bottom, right) 有誤 中说:

click(w.centerX(),w.centerY());
這個方法試過了,出現錯誤訊息說: 要安卓 7以上才能使用。 我的系統是安卓6

6.0以下使用root操作函数。
Tap(w.centerX(),w.centerY());
https://i.autojs.org/autojs/docs/coordinates-based-automation.html#coordinates_based_automation_rootautomator

最后由 卢某某 编辑

明白了,謝謝
只不過使用的限制就很大,手機必須root

最后由 payne 编辑

click(l,t,l,b)实际上是通过bound filter来实现的。
对于clickable=false的控件,是没法点击的。这也是为什么你使用这个函数没有效果的原因。

click(l,t,r,b)应该和下面的代码差不多意思。
click(l,t,r,b)=function(l,t,r,b){
let all=boundsInside(l,t,r,b).clickable(true).find();
return all.empty()?false:all.click();
}

最后由 卢某某 编辑
  • 8
    帖子
  • 1454
    浏览

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