我正在尝试编写一个代码来以突发模式捕获图片。这需要在Capture按钮上长按(大约一分钟)。如何实现这一目标?
UiObject CameraButton = new UiObject(new UiSelector().text("Capture"));
CameraButton.longClick();
longclick():按住按钮需要多长时间?是否可以使用时间戳执行长按。
答案 0 :(得分:3)
使用 swipe(int startX,int startY,int endX,int endY,int steps)来执行长时间点击所需的时间。最后一个参数步骤确定时间。 For a 100 steps, the swipe will take about 1/2 second to complete.步骤的值越大,点击和释放的持续时间就越长。
UiObject CameraButton = new UiObject(new UiSelector().text("Capture"));
Rect CameraButton_rect = CameraButton.getBounds();
getUiDevice().swipe(CameraButton_rect.centerX(), CameraButton_rect.centerY(), CameraButton_rect.centerX(), CameraButton_rect.centerY(), 100);
答案 1 :(得分:0)
另一个选择是drag对象本身:
UiObject CameraButton = new UiObject(new UiSelector().text("Capture"));
CameraButton.dragTo(CameraButton, 10);
根据您想要的时间选择步骤。
答案 2 :(得分:0)
如果您使用的是UIAutomator2,则从版本v18:2.1.3开始 -
通过点击等待持续时间简化了长按点击处理。
/** Performs a click on this object that lasts for {duration} milliseconds. */
public void click(long duration)
希望这有助于某人!
答案 3 :(得分:0)
对于UIautomator 2.0,你应该这样试试:
BySelector selector = By.res("resourceID");
UiObject2 obj = mDevice.findObject(selector);
Point pot = obj.getVisibleCenter();
mDevice.swipe(pot.x, pot.y, pot.x, pot.y, 200);