0

4.2.2 エミュレーターでは、ミュージックの [再生中] 画面に、前、再生、次の ImageButtons があります。残念ながら、これらの 3 つのボタンには text または contet-desc の値がありません。

それらの1つをクリックしたいのですが、答えは次のようなものにあると思います:

  UiObject relLayout = new UiObject(new UiSelector()
  .className("android.widget.LinearLayout").index(1));
  relLayout.click();

しかし、この画面にはいくつかの LinearLayout があり、特定の LinearLayout を選択する方法がわかりません。上記のコードは、3 つの画像ボタン (ライブラリ、シャッフル、リピート) を含む LinearLayout でもあるため、シャッフルを押します。

LinearLayout について私たちが知っている唯一のことは、子である LinearLayout の子であるインデックス 0 の FrameLayout のインデックス 0 の子である別の LinearLayout のインデックス 5 の子であるということだけです。 、インデックス 0 で、FrameLayout の。

問題は、特定の LinearLayout を探すように UiSelector にどのように指示できるかということです。

ありがとう、

アレックス

4

1 に答える 1

0

このような状況では、 をクリックしboundsます。これにより、デバイスのサイズを変更すると、境界が変更されるという問題が発生する可能性があります。画面の高さを取得して、使用しているデバイスがわかるようにしてから、 をクリックしboundsます。boundsあなたはあなたの経由を見つけることができますuiautomatorviewer

 int height = UiDevice.getInstance().getDisplayHeight();

if(height == THE_SIZE_EXPECTED){
  UiDevice.getInstance().click(int_x, int_y);
 } else if (height == ANOTHER_SCREEN_HEIGHT_OPTION){ 
   UiDevice.getInstance().click(int_x, int_y);
 } 

お役に立てれば

于 2013-12-17T16:58:14.017 に答える