Android uiautomator2 LongClick不生效问题解决

Android 的UiObject提供了长按的操作,但是我在实际使用中却发现还是执行的单击操作,应该是默认的接口函数长按的时间太短导致没有触发我的长按事件

之前我想的Android会不会提供官方API可以设置长按时间呢,找了一圈发现并没有

后面也是在网上找到了别人的处理方法,这种方法也是聪明到点儿了

public void longClick(UiDevice ud, UiObject uiObject,int steps) throws UiObjectNotFoundException{

ud.swipe(uiObject.getBounds().centerX(), uiObject.getBounds().centerY(),uiObject.getBounds().centerX(),uiObject.getBounds().centerY(), steps);

}


这种方法实际使用到了swipe方法,只是swipe的起点与终点相同,然后step步设置久一点,就会在这个控制长按

另外官方文档中说1step的时间是5ms,所以我们还可以修改上面方法,参数直接传时间


public void longClick(UiDevice ud, UiObject uiObject,int ms) throws UiObjectNotFoundException{

int step = ms/5;

ud.swipe(uiObject.getBounds().centerX(), uiObject.getBounds().centerY(),uiObject.getBounds().centerX(),uiObject.getBounds().centerY(), step);

}


亲测有效

你可能感兴趣的:(Android uiautomator2 LongClick不生效问题解决)