uiautomator点击没有text或content-desc的ImageButton

时间:2013-12-11 13:04:49

标签: android uiautomator

在4.2.2模拟器上,在Music的Now Playing屏幕中,我们有prev,play和next ImageButtons。不幸的是,这3个按钮没有文本或contet-desc值。

我想点击其中一个,我认为答案就在于:

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

但是这个屏幕上有几个LinearLayout,我不知道如何选择特定的LinearLayout。上面剪切的代码将按下随机播放,因为它也是一个包含3个图像按钮(库,随机播放和重复播放)的LinearLayout。

我们对LinearLayout的唯一认识是,它是另一个LinearLayout的子,索引为5,它是一个FrameLayout的子项,索引为0,它是一个LinearLayout的子项,索引为0是一个FrameLayout的子索引,索引为0。

问题是我们如何告诉UiSelector寻找某个LinearLayout?

谢谢,

亚历

1 个答案:

答案 0 :(得分: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);
 } 

希望这有帮助