エスプレッソ経由でドロップアクション&を実行することは可能ですか?私は私の自動化テストでいくつかの条件を受け入れるために、1つのビューを(直線で)下に移動する必要があります。ドラッグ&ドロップエスプレッソ
答えて
GeneralSwipeActionを使用して、ドラッグ&ドロップを実行できます。
public static ViewAction swipeUp() {
return new GeneralSwipeAction(Swipe.FAST, GeneralLocation.BOTTOM_CENTER,
GeneralLocation.TOP_CENTER, Press.FINGER);
}
要件を満たすように場所をカスタマイズすることもできます。
どうすればいいですか?あなたはそのようなあなたのビューで何が起こるべきであるかへのより多くのアクセス権を持っています。しかし、受け入れられた答えはドラッグ&もドロップを実行します。
public static void drag(Instrumentation inst, float fromX, float toX, float fromY,
float toY, int stepCount) {
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis();
float y = fromY;
float x = fromX;
float yStep = (toY - fromY)/stepCount;
float xStep = (toX - fromX)/stepCount;
MotionEvent event = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_DOWN, x, y, 0);
inst.sendPointerSync(event);
for (int i = 0; i < stepCount; ++i) {
y += yStep;
x += xStep;
eventTime = SystemClock.uptimeMillis();
event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x, y, 0);
inst.sendPointerSync(event);
}
eventTime = SystemClock.uptimeMillis();
event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, x, y, 0);
inst.sendPointerSync(event);
inst.waitForIdleSync();
}
このメソッドをどのように呼びますか?私は何か違うものをテストしたいが、それは出発点になるかもしれない。 drag(InstrumentationRegistry.getInstrumentation()、0、100、0、100、20); – raultm
この呼び出しは私にSecurityExceptionを投げます:別のアプリケーションに注入するにはINJECT_EVENTS権限が必要です。そして、システムアプリケーションのためのこの許可... – raultm
私の質問はhttp://stackoverflow.com/questions/40759085/android-espresso-how-can-i-perform-onlongclick-and-slidedown-continuedです – raultm
円を特定の場所に移動する必要があったため、swipeDown()、swipeUp()が機能しませんでした。 – F1sher
あなたのコードは、他のケースでは私にとって役に立ちました。ありがとうございました。 – F1sher