Antwort

1

Es gibt keinen direkten Weg keine Espressomaschinen wie move(Gravity.LEFT, 40) Methoden.

Für einige Zwecke wie ACTION_DOWN Sie Methoden wie swipeDown() klauen können

prüfen Espresso.ViewActions Referenz: https://developer.android.com/reference/android/support/test/espresso/action/ViewActions.html

Für einige, die Sie müssten bestehende Methoden ändern wie hier: Drag & Drop Espresso

Händler zu mischen Espresso mit anderen UI Instrumentierung Frameworks wie Robotium, die bereits einige große Matcher und Funktion, die Espresso nicht wiehat 0 Methode oder versuchen Sie eine andere Google-Framework namens uiatomator.

Check: http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html

Hoffe, es

helfen
3

Sie können ganz einfach Touch-Ereignisse senden. Verwenden Sie diese Ansicht Aktion:

public static ViewAction touchDownAndUp(final float x, final float y) { 
    return new ViewAction() { 
     @Override 
     public Matcher<View> getConstraints() { 
      return isDisplayed(); 
     } 

     @Override 
     public String getDescription() { 
      return "Send touch events."; 
     } 

     @Override 
     public void perform(UiController uiController, final View view) { 
      // Get view absolute position 
      int[] location = new int[2]; 
      view.getLocationOnScreen(location); 

      // Offset coordinates by view position 
      float[] coordinates = new float[] { x + location[0], y + location[1] }; 
      float[] precision = new float[] { 1f, 1f }; 

      // Send down event, pause, and send up 
      MotionEvent down = MotionEvents.sendDown(uiController, coordinates, precision).down; 
      uiController.loopMainThreadForAtLeast(200); 
      MotionEvents.sendUp(uiController, down, coordinates); 
     } 
    }; 
} 

Und rufen Sie es mit:

onView(withId(R.id.my_view)).perform(touchDownAndUp(x, y));