0

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

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

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

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

关于我们的 LinearLayout,我们唯一知道的是,它是另一个 LinearLayout 的子元素,索引为 5,这是一个 FrameLayout 的子元素,索引为 0,它是一个子元素,索引为 0,一个 LinearLayout 是子元素, 索引为 0 的 FrameLayout。

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

谢谢,

亚历克斯

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 回答