gpt4 book ai didi

android - 如何使用 uiautomator 获取 View 的父 View ?

转载 作者:可可西里 更新时间:2023-11-01 18:45:47 31 4
gpt4 key购买 nike

我正在尝试识别 ui 元素的父 View ,以便我可以在 UI 中自由导航。

例如,在“设置”应用中,我可以找到带有文本“蓝牙”的 View :

UiObject btView = new UiObject(new UiSelector().text("Bluetooth"));

现在,我遇到困难的部分是:我想向上导航两个级别并开始新的搜索以启用和禁用蓝牙的开/关按钮。

注意:如果我使用下面的代码,我可以获得按钮。

UiObject btButtonView = new UiObject(new UiSelector().className("android.widget.Switch").instance(1));

这将搜索开关按钮并返回第二次遇到的情况。我希望搜索更精确,并在包含“蓝牙”文本的线性布局中查找按钮。

更新:这是设置应用程序的布局(我需要的蓝牙部分):

LinearLayout
LinearLayout
ImageView
RelativeLayout
TextView (with text = "Bluetooth")
Switch ()

最佳答案

您需要先使用文本找到上两层的 UiObject。这可以使用 UiCollection 或 UiScrollable 中的 getChildByText() 方法来完成。然后你可以很容易地找到开关。对于“设置”,此代码适用于我的设备:

UiScrollable settingsList = new UiScrollable(new UiSelector().scrollable(true));
UiObject btItem = settingsList.getChildByText(new UiSelector().className(LinearLayout.class.getName()),"Bluetooth", true);

UiObject btSwitch = btItem.getChild(new UiSelector().className(android.widget.Switch.class.getName()));
btSwitch.click();

关于android - 如何使用 uiautomator 获取 View 的父 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680352/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com