问题标签 [android-uiautomator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - null root node returned by UiTestAutomationBridge by uiautomator
I have an issue running uiautomator in my python script (a similar shell script runs fine). I use the following method for convenience:
then I use a combination of
I use this a lot, and the first 1-2 run throughs usually work, after that it seems to sporadically fail at line 1 (creating the dump.xml) giving error code
I looked into UiTestAutomationBridge.java (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/accessibilityservice/UiTestAutomationBridge.java) and it seems to me that the cause is that the timeout that the devs placed on line 65, that is sometimes enough, and sometimes not enough for the bridge to form correctly. (correct me if I'm wrong.
What really bugs me is that I've been using the same code for almost a week, and I only got the error for the first time this morning, and now it's happening almost every single time. I've checked to make sure I close the file after reading it, I delete the files before dumping and copying new files, and I have tried up to time.sleep(10) before and after each command, but still no go. I've run the 'time' command from command line for my shell script that hasn't failed a single time yet, and it takes about 2 seconds for the entire process, so 10 seconds should be enough for anything that is bogging down to get sorted out.
android - 如何在 apk 中捆绑 UIAutomator
我正在尝试创建一个在单击按钮时启动 UIAutomator 的应用程序。目前,运行时问题是 UiAutomator 的 NoclassDefFound - 我已经在构建路径中添加了 uiautomator jar。任何指针我可以如何解决这个问题?谢谢!
android - 一个 Android 应用程序可以通过 UI Automator 控制另一个应用程序吗?
我正在尝试编写一个可以部署在目标设备上的 Android 应用程序/服务。该应用程序可用作远程控制目标设备的挂钩。从 Jelly Bean 版本开始,提供了 UI Automator 实现,它提供了类似的功能。但是,UI Automator 似乎只能通过 ADB 接口使用。在设备上运行的应用程序不能直接使用 UI Automator (???)。我正在尝试找到一个无需亚行帮助即可工作的解决方案。例如,钩子可以作为 protobuf 服务器侦听套接字。客户端可以向钩子发送命令以远程控制和设备。我查看了 Andorid SDK 源代码。看起来唯一的方法是使用 android 可访问性 API。我想知道是否有更好的方法?
android - android uiautomator 点击 ListView
我有一个 android 应用程序,它使用 uiautomator 单击列表视图中的选项。ListView 如下所示:
我正在尝试单击完整基准列表项,但我的代码无法识别该列表项。这就是我所拥有的:
我将不胜感激任何帮助!
android - 使用 Android uiautomator 设置文本后抑制键盘
使用 uiautomator for Android 我可以在文本字段中设置文本,但无法关闭键盘。在某些手机处于横向模式时,键盘会占据整个屏幕,必须点击“完成”才能退出该视图。如果我可以抑制键盘,那么我可以在横向和纵向中运行 uiautomator 而不会出现问题。
提前致谢。
android - Android Nexus 10 AOSP 构建 AndroidViewClient
我终于成功地构建了一个安装了 Google 移动服务的 Nexus 10 映像 (full_manta-userdebug),但不幸的是,我无法使用使用 AndroidViewClient 的 MonkeyRunner 脚本。它从脚本中崩溃,内容如下:
我是否需要安装 ViewServer 才能正常工作,还是在构建映像时忘记包含 uiautomator 后端?
java - 如何使用 Google UiAutomator 按两次按钮?
我有以下脚本,用于在 Android 中使用 UiAutomator 在计算器中输入“33”。但是,只接受第一个“3”,第二次按下完全被忽略。
我尝试在第一次单击后添加睡眠 2 秒,方法是:
......但这并没有改变任何东西。
我还尝试在 2 '3' 之间单击另一个按钮,即:
...但这也不起作用。
想法?
(注意:在 AVD 中使用 Android 4.1.2;在 Ubuntu linux 12.04 上运行)
编辑,根据 Rami 的观察,我尝试了以下操作,以将相同的 UiObject 对象重用于对相同描述的第二次请求:
...但它没有用,即使它每次都清楚地重用相同的 UiObject,因为它只说“为 [3] 创建了新对象”一次。
然后我尝试了 UiDevice.click() 'trick',通过创建一个函数'click',再次遵循 Rami 的观察:
然而,这对我也不起作用:只出现第一个“3”,第二个被忽略,即使两次点击都明显在同一个地方,因为rect:
输出位置是相同的。如果我使用自己的桌面鼠标手动单击“3”两次,则两个 3 都显示正常。
Thread.sleep()
我还尝试在两次点击之间添加两秒钟,但我仍然只出现了一个“3”。
android - Android uiautomator:如何按索引获取 EditText 字段?
UiSelector 允许您通过文本、textStartsWith、包含等获取 EditText 字段:
http://developer.android.com/tools/help/uiautomator/UiSelector.html
但是如何获得第二个文本字段?碰巧该字段没有任何文本或描述。如果我只是这样做
然后它返回给我一个不是带有索引的 EditText 的字段。
谢谢!
android - 在下拉列表中使用 UiAutomator
我正在探索 Android 上的 UiAutomator 功能,并尝试将其与 Google 环聊应用程序一起进行测试。我已经成功进入创建新的环聊页面并输入了一个名称,但我无法点击任何下拉联系人,如下图所示。我尝试按包名称搜索com.google.android.talk
,然后使用该instance()
功能,但无法选择联系人。无论如何我可以弄清楚那个 UI 元素的类名是什么?或者我还能怎么点击那个 ui 元素?
android - 在 Android UIAutomator 中,如何将文件从 sdcard 复制到其他位置,如 data/local/tmp?
我的 UIAutomator 测试用例需要将文件从 sdcard 复制到 data/local/tmp 并继续进行。当我使用下面提到的代码时:
我得到了这个例外。
还有其他方法可以做到这一点吗?我感谢答案,谢谢。