在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?
谢谢,
亚历
答案 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);
}
希望这有帮助