我的Android应用程序的一个功能涉及点击Google Map绘制形状(该应用程序通过放下标记来响应点击,然后在标记之间绘制折线)。我找到了一种解决方案,可以使用Espresso进行此操作,但是它无法正常工作,我看不到自己在做什么。来源:
https://stackoverflow.com/a/37596191/3307720
这是我制作ViewAction的方法:
public static ViewAction clickPositionByPercent(final float pctX, final float pctY) {
return new GeneralClickAction(
Tap.SINGLE,
view -> {
final int[] screenPos = new int[2];
view.getLocationOnScreen(screenPos);
int w = view.getWidth();
int h = view.getHeight();
float x = w * pctX;
float y = h * pctY;
final float screenX = screenPos[0] + x;
final float screenY = screenPos[1] + y;
float[] coordinates = {screenX, screenY};
return coordinates;
},
Press.FINGER, 0, 0);
}
这是我的使用方式:
ViewInteraction viewInteraction = onView(withId(viewId)).check(matches(isDisplayed()));
viewInteraction.perform(clickPositionByPercent(0.25f, 0.25f));
// repeated a few times
但是没有标记出现。没有错误,测试将在此点之后继续进行(并随后失败,因为未绘制预期的形状)。有任何想法吗?以前有人成功做到过吗?