Одной из функций моего приложения для Android является нажатие на карту Google для рисования фигуры (приложение реагирует на нажатия, опуская маркеры, а затем рисует полилинии между маркерами). Я нашел решение сделать это с эспрессо, но оно не работает, и я не вижу, что я делаю неправильно. Вот источник:
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
Однако маркеры не отображаются. Ошибок нет, и тест продолжается после этой точки (и завершается неудачей позже, потому что ожидаемая форма не была нарисована). Есть идеи? Кто-нибудь успешно делал это раньше?