gpt4 book ai didi

android - 是否可以从应用程序外部识别单击的 View 及其索引号?

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:59 26 4
gpt4 key购买 nike

我已经学习 Android 几个月了,特别是测试 Android 应用程序的不同方法。到目前为止,我使用过 JUnit 和 Robotium。我已经学会很好地使用 Robotium,甚至用于测试黑盒应用程序,我认为它真的很酷。但是,在使用 Robotium 测试黑盒应用程序时,单击按钮的唯一方法是使用其标签、坐标或索引。问题是,如果按钮是图像按钮,那么我不能使用它的标签,而且由于屏幕尺寸不同,我担心使用坐标不允许我在不同设备上运行测试,所以 View 可能缩放时放置在不同的位置。所以,这只剩下索引(除非......还有另一种我可能还不知道的方法?),但问题是我无法知道 View 的索引,到目前为止我唯一的方法'我想通过编写一个测试来获得按钮的索引,告诉 Robotium 单击索引为 0 的按钮,然后单击 1,然后我可以识别模式并自行计数,直到获得我想要的按钮的索引。

但是,由于这非常麻烦(特别是如果我有多个按钮),我正在尝试构建一个工具,允许我在单击时识别 View 及其索引,例如,假设我正在测试音乐播放器,我想告诉 Robotium 单击“播放”按钮,因为它是一个图像按钮,我会将索引号作为参数发送给 clickOnImageButton(int index),但我不知道它的索引,所以我将单击它,此工具将打印类似“您单击了索引为 3 的 ImageButton”之类的内容,如果可能的话作为 toast 或在控制台中。

现在,我的问题来了,有什么办法可以做到这一点吗?我试图创建一个服务并使用它来捕获点击事件,但后来我读到了这篇文章:Android detecting the touch state from any application ,因此出于安全原因,这似乎是不可能的,因为我相信我当然需要从其他应用程序及其 View 元素中捕获点击事件。我试图查看 logcat 是否提供此信息,但它没有,最后我尝试使用 adb 的 getevent,但它的输出很难理解,而且 getevent 的输出似乎也是坐标,有没有办法根据坐标获取 View 及其索引?我一直试图找到关于猴子如何工作的解释,以防万一有什么帮助,但我找到的所有文档都与如何使用它有关,而不是它如何工作。我想知道你们中是否有人知道 Testdroid 或任何记录/重播工具如何设法捕获这些点击并在不同设备上重现它们。

最佳答案

您还可以使用带有资源 ID 的 Robotium。一个例子是:

ImageButton imageButton = (ImageButton) solo.getView(R.id.x);

solo.clickOnView(imageButton);

更多白盒测试方法请看javadoc:

http://code.google.com/p/robotium/downloads/list `

关于android - 是否可以从应用程序外部识别单击的 View 及其索引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765236/

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