Articles of uiautomator

获取UI层次结构时出错获取UI层次结构XML文件时出错:com.android.ddmlib.SyncException:远程对象不存在

我正在使用adb测试我的应用程序,但是当我执行“uiautomator的转储视图层次结构”时,我收到此错误: 获取UI层次结构时出错获取UI层次结构XML文件时出错:com.android.ddmlib.SyncException:远程对象不存在! 我的adb版本是1.0.36,我的android版本是6.0.1。 仅当在界面中存在运动中的动态元素时才会启动此错误。 先谢谢你。

uiautomator – 无法让ListView滚动,因为我在每个列表项中validation文本。 当我点击屏幕上的最后一项时,它就会失败

我正在尝试validationListView中每个列表项中的文本并逐个向下滚动,以便我可以validation每个…但由于某种原因,我无法让它继续滚动列表validation每个元素。 有没有人有任何运气自动化这种行动。这是我最接近的。 如果这还不够,请告诉我: UiScrollable scrollableList = new UiScrollable(new UiSelector() .resourceId(“com.example.app:id/listView”) .className(android.widget.ListView.class.getName()) .index(3)); for ( i = 0; i < 100; i++ ) { UiObject listItem = scrollableList.getChildByText(new UiSelector() .className("android.widget.RelativeLayout") .instance(i), "Text Title"); UiObject textBody = listItem.getFromParent(new UiSelector() .resourceId("com.example.app:id/textBody")); System.out.println("Validating: " + textBody.getText()); 当时屏幕上只能看到5个listItem,所以当它试图到达6时它会失败,因为它不能: 一个。 它不会尝试向前滚动以获得列表中的下一个 湾 即使它向前滚动以获取列表中的下一个,实例值也将减少到5,而不是增加到6。 我在没有.instance()方法的情况下尝试过它,但在这种情况下,它只是一遍又一遍地遍历列表中的第一个项目而不进行到项目2,3,4等。 如果有人遇到过这个问题,我会很乐意反馈。

如何使用Eclipse调试UIAutomator脚本

从我所看到的,当UIAutomator脚本被编译成jar文件并使用adb shell命令运行时。 我可以看到有一个-e debug命令行选项,它等待调试器在启动之前连接但是如何将它连接到Eclipse的调试器以便我可以调试我的UI Automator脚本?

在UiAutomator Android中提供事件之间的延迟

如何在UiAutomator Android中提供事件点击之间的延迟。 第一个事件是在EditText中输入一个URL: new UiObject(new UiSelector().text(“Search here”)).setText(“abc.com”); getUiDevice.waitForIdle(15000); 在这里,我在webview中加载一个网页。 所以当url加载完成时,我需要检查第二个事件。 第二个事件是检查对象的内容描述: UiObject curClass = new UiObject(new UiSelector().className(“android.widget.RelativeLayout”)); UiObject yCur = curClass.getChild(new UiSelector().description(“ye”)); getCurCol(); public void getCurCol() throws UiObjectNotFoundException { try { if (yCur.getContentDescription() != null) report.append(“Success”); } catch (Exception e) { System.err.println(“\nCaught Exception: ” + e.getMessage()); } 但这似乎并没有奏效。 我只是希望应用程序在检查第二个事件之前等待一段时间。 我知道这三种方法是为UI Automator的延迟提供的 – public void waitForIdle(long […]

UiScrollable在Android uiautomator中不起作用

有没有人尝试Android UITesting框架UITesting ? 当我使用类UiScrollabl “在可滚动对象中查找某些对象时,如果可滚动对象的长度太长(需要刷两次才能find它),它就找不到对象,就像”Developer options“中的“设置”应用。有没有人有同样的问题?

Android P Preview在API兼容性错误的情况下破坏了UiAutomator测试

我在Pixel设备上尝试Android P预览,目前遇到使用UiAutomator框架编写的仪器测试问题。 每当使用UiAutomator通过以下代码模拟按钮点击时: onView(withId(R.id.button_activity_login)).perform(click()) 我遇到一个带有消息的AlertDialog Detected problems with API compatibility (visit g.co/dev/appcompat for more info) 这导致了这个链接: https://developer.android.com/preview/restrictions-non-sdk-interfaces.html#differentiating_between_sdk_and_non-sdk_interfaces 这打破了UiAutomator测试,因为我的测试目前不考虑每个动作之间的其他AlertDialog。 这只发生在UiAutomator的按钮点击,而不是Espresso的。 我相信UiAutomator可能会在引擎盖下使用一些reflection来实现跨应用程序测试function(事先不知道UI组件的文本或ID),而Espresso负责处理被测试应用程序内的所有内容。 这有点奇怪,因为UiAutomator是Google自己在开发者网站上建议的测试框架( https://developer.android.com/training/testing/ui-automator.html#ui-automator-apis )。 有没有人经历过或解决过以下问题?

Android Studio中的Ui Automator 2.0项目

我想在Android Studio中设置一个项目。 但是,我不想要一个Android应用程序,只需要测试项目。 在最新发布的UiAutomator之后 ,我试图设置一个扩展ActivityInstrumentationTestCase2的类,并从那里开始我的测试。 但是,我偶然发现了一件事:我无法弄清楚如何在不将其作为应用程序的情况下创建项目。 创建新项目的选项包括: 启动一个新的Android Studio项目 打开现有项目 导入项目 我做了: 启动一个新项目,为其命名,设置minSDK并选择“No activity” 打开build.gradle(在app下)并添加测试支持库末尾提到的依赖项和检测信息 在src下打开androidTest并更改主文件:更改为ActivityInstrumentationTestCase2,添加setUp和tearDown; 定义RunWith Junit4(如测试支持库中所示 ) 我构建项目(构建成功) – 按下“动作栏”中构建的绿色箭头 我的问题是: 如何在设备中安装? 如何在设备中运行它? 我需要在AndroidManifest中做任何事情吗? 我在正确的地方编辑吗? 我应该在src / main下做什么吗? 我很欣赏安装和运行说明将是如何通过Android Studio和使用命令行(如果你只知道其中一个发布它请它)。 注意:这是我第一次使用Android Studio 提前致谢。 编辑: 现在我可以构建并运行但它告诉我没有运行测试(空测试套件)。 这是我的分数和我的代码。 我的build.graddle如下: apply plugin: ‘com.android.application’ android { compileSdkVersion 22 buildToolsVersion “21.1.2” defaultConfig { applicationId “androidexp.com.ceninhas” minSdkVersion 21 targetSdkVersion […]

如何使用UiAutomator关闭Android应用程序?

如何使用UiAutomator API关闭特定的Android应用程序? 就像当您手动按下“最近”按钮并滑动要关闭的应用程序一样。

UIAutomator根据索引点击listview

我正在尝试使用一般方法实现UIAutomator测试用例来执行ListView项目的单击(无论持有listitem的视图组的types如何)。 目前我有以下代码,但它一直点击第一项。 public void clickListViewItem(int index) throws UiObjectNotFoundException { UiObject listview = new UiObject(new UiSelector().className(“android.widget.ListView”)); if(index <= listview.getChildCount()){ listview.getChild(new UiSelector().index(index)).click(); }else{ throw new UIObjectNotFoundException("Index is greater than listSize"); } }

UiAutomator getLastTraversedText()

我试图使用Android UiAutomator测试Android Webview。 据我了解文档 ,滚动WebvView会生成UI遍历事件,这些事件应该可以通过getUiDevice().getLastTraversedText().读取getUiDevice().getLastTraversedText(). 但是,当我使用getUiDevice().pressDPadDown()滚动Web视图时, getUiDevice().getLastTraversedText()保持返回null。 我错过了什么? 如果有人打电话给我工作,我非常感谢一个简短的代码示例。