如图,求大神帮忙看看 这种控件的单击操作如何写?

使用Autojs在安卓设备自动生成的单击代码id("back_iv").findOne().click() 运行后无效,然后查看控件信息,显示bounds(31,77,47,106) clickable为false , className 为android.widget.ImageView , depth为12 ,indexInParent为0,如何确定空间中心坐标实现控件定位单击?









慕田峪7331174
浏览 329回答 2
2回答

Smart猫小萌

在Auto.js中,可以通过 bounds() 方法获取控件的位置信息,然后通过 click(x, y) 方法在指定的坐标位置进行单击操作。如果 clickable 属性为 false,可以先获取该控件的位置信息,然后根据控件的位置信息和其它特征(如文本内容、ID等)计算出需要单击的坐标位置,最后调用 click(x, y) 方法实现单击操作。例如,假设有一个控件,clickable 属性为 false,但是它的文本内容为 "Button",那么可以通过以下代码实现定位并单击该控件:var btn = text("Button").findOne();var bounds = btn.bounds();var x = bounds.centerX();var y = bounds.centerY();click(x, y);这段代码首先通过 text("Button").findOne() 方法获取文本内容为 "Button" 的控件,然后通过 bounds() 方法获取该控件的位置信息。最后,通过 bounds() 方法返回的坐标信息计算出控件中心的坐标,然后调用 click(x, y) 方法实现单击操作。 

江户川乱折腾

根据您提供的控件信息,可以发现该控件的clickable属性为false,因此无法直接使用click方法单击控件。您可以尝试使用press和moveTo方法来模拟手指按下和滑动的动作,实现对该控件的单击操作。代码示例如下:var x = 39; // 控件中心 x 坐标var y = 91; // 控件中心 y 坐标press(x, y, 50); // 模拟按下操作sleep(50); // 按下后等待一段时间moveTo(x, y - 10, 50); // 模拟手指滑动moveTo(x, y, 50); // 模拟手指返回原位置sleep(50); // 等待一段时间click(); // 单击操作您可以将控件中心的坐标值替换为实际的坐标值,该代码模拟的是一个手指单击的过程,通过按下和滑动模拟了手指按下和松开的动作,最后调用click方法实现单击操作
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB