UI的Automator /有人来过面临UI Automator的问题? (不可能点击元件上)

问题描述 投票:0回答:2

我的问题的史前史:

我正在学习UI自动机(2.1.3)咖啡测试使用简单的Mac航空(2014)机器人工作室(3.0.1)+。此前我已经创建的功能套件,测试运行和它的很长一段时间正常工作。但上周我已经注意到相关的UI Automator动作奇怪的行为: - 我不能在我当前的项目,也不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 Automator动作)在不同的设备(虚拟的和物理的)
  • 清晰的Android工作室缓存,重启
  • 同步gradle这个(我还没有很长一段时间之前改变 - 3个月或以上)+清除我的项目+重新构建它
  • 在使用的Gradle依赖UI自动机的先前版本
  • 重新安装Android工作室

所有这些项目解决不了,我所面临的问题。此外,我已经在另一个Android项目上面的例子尝试,它不起作用了。

我可以看到在某个地方UI的Automator或在最新的Android 3.0.1工作室所有我知道现在的问题 - )用户界面的Automator执行mDevice.pressHome(,背部等,但不要对我的应用程序的具体内容进行任何操作。

有谁知道如何解决UI Automator的行为?

java android android-espresso automator uiautomator
2个回答
1
投票

您可以在Android Studio中调试,就可以得到正确的“myObject的”? “myObject的”将包含边界与该元件的位置,“点击()”动作将执行在中心位置的一个点击。

在另一方面,你正在使用uiautomator 2.0,你应该正餐一个UIObject UiObject2代替。

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

1
投票

所以可能这将是对别人有用的,只记得UIObject类应该只包含一个组件标识符(UIObject类不允许使用的组件ID +组件TEXT或DESCR不管)。

样品:

UiObject myObject = mDevice.findObject(new UiSelector().text(getInstrumentation().getTargetContext()
        .getString((R.id.idOfMyElement)))
        .clickable(true).checkable(false));

要么

 UiObject myObject = mDevice.findObject(new UiSelector().text(getInstrumentation().getTargetContext()
        .text(contentOfMyElement)
        .clickable(true).checkable(false));
© www.soinside.com 2019 - 2024. All rights reserved.