2013-03-06 23 views
1

我還沒有找到任何方法來自動化uiautomator測試中的多點觸摸運動如何在uiautomator中使用多點觸控?

鑑於它是com.android.uiautomator。*類的框架,我該如何自動化多點觸摸運動?

+0

看起來您可能可以使用InputManager.getInstance()。injectInputEvent()和MotionEvent.obtain()的組合來創建這種基礎結構。我還沒有找到任何方法來自動做到這一點,所以我接受了下面的答案。 – Shellum 2013-03-13 15:29:29

+2

請閱讀更新的文檔自Android API級別18: http://developer.android.com/tools/help/uiautomator/UiObject.html 我認爲performMultiPointerGesture函數應該是你的答案。 – shijunz 2013-07-25 09:10:38

回答

1

更新01 2017年3月 當我第一次回答這個問題時,Android-17的最新文檔例如http://developer.android.com/tools/help/uiautomator/UiObject.html似乎沒有提供任何方式來提供多點觸控或其他複雜的手勢,如捏&縮放。

但@Project指出,現在支持多點觸控手勢。 https://developer.android.com/reference/android/support/test/uiautomator/UiObject.html#performMultiPointerGesture(android.view.MotionEvent.PointerCoords[]...)

在這個階段我還沒有測試過這個功能。

+0

我會對你的迴應+1,但在接受它之前要稍等一會兒:) – Shellum 2013-03-11 17:37:15

+0

只要你需要,等待:)讓我們希望谷歌通過提供功能證明我們都錯了! – JulianHarty 2013-03-12 15:06:44

+0

這個答案不再正確。建議更新,因爲這是被接受的答案。 – Project 2017-02-28 21:24:03

2

在Android API級別18中,android UiObject爲這種多點手勢提供了api。 check here

0

您可以使用pinchOut/pinchIn方法進行縮小和放大。或者使用多點觸控手勢,如JulianHarty指出的那樣,如果您想要更精細的控制。

UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); device.findObject(uiSelector).pinchOut(percent,steps);