gpt4 book ai didi

java - UI automator/有人遇到过 UI automator 的问题吗? (无法点击元素)

转载 作者:行者123 更新时间:2023-12-02 02:23:39 27 4
gpt4 key购买 nike

我的问题的历史:

我正在研究 UI automator (2.1.3) 和 Espresso 测试 + 在简单的 Mac Air (2014) 上使用 android studio (3.0.1)。之前我已经创建了用于测试运行的功能套件,并且在很长一段时间内运行良好。但上周我注意到与 UI 自动操作相关的奇怪行为: - 我无法对当前项目中的元素或 Android 元素执行单击。例如,很长一段时间以来,我在项目中使用了按ID单击元素,但现在这些方法不起作用。测试已通过,但屏幕上和应用程序状态下没有结果,这里是简单的示例:

 UiDevice mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
String contentOfMyElement = "";
UiObject myObject = mDevice.findObject(new UiSelector().text(getInstrumentation().getTargetContext()
.getString((R.id.idOfMyElement))).text(contentOfMyElement)
.clickable(true).checkable(false));
mObject.click();
<小时/>

这种结构的所有对象突然变得不起作用,测试通过并且成功,但应用程序状态没有任何变化。这种结构在我的项目中已经运行了很长时间,但现在所有测试都不起作用。

我正在尝试用下一种方式解决它:

  • 首先,我认为移动设备出了问题,因此我在不同设备(虚拟和物理)上开始了多项测试(使用 UI 自动操作)
  • 重启后清除 android studio 缓存
  • 同步 gradle(我之前很长一段时间没有更改 - 3 个月或以上)+ 清除我的项目 + 重新构建它
  • 在 gradle 依赖项中使用以前版本的 UI automator
  • 重新安装 android studio

所有这些项目都无法解决我遇到的问题。另外,我在另一个 Android 项目中尝试过上面的例子,但它也不起作用。

正如我在 UI automator 或最新的 android studio 3.0.1 中的某个地方看到的问题目前我所知道的一切 - UI 自动器执行 mDevice.pressHome()、返回等,但不对我的应用程序的特定元素执行任何操作。

有人知道如何修复 UI 自动化行为吗?

最佳答案

你可以在android studio中调试,你能得到正确的“myObject”吗?“myObject”将包含元素的边界和位置,“click()”操作将在中心位置执行一次单击。

另一方面,您使用的是 uiautomator 2.0,您应该使用 UiObject2 而不是 UiObject。

BySelector selector = By.res("resourceID");
UiObject2 obj = mDevice.findObject(selector);

关于java - UI automator/有人遇到过 UI automator 的问题吗? (无法点击元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48097691/

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