2

情况就是这样,我是android中的新派,我正在运行一个自动化测试,每5分钟从安装在android上的应用程序使用calabash-android发送一封电子邮件,在这种情况下我可以成功打开电子邮件应用程序,但是新的电子邮件按钮标有信封的图像。

现在我怎么知道那个按钮的标识符来告诉 calabash-android 按下那个按钮?

我尝试为模拟器运行调试,每次按下新的电子邮件按钮时,我都会在调试中收到:

11-27 18:36:59.092: I/ActivityManager(1177): 从 pid 5668 开始 u0 {cmp=com.android.email/com.android.mail.compose.ComposeActivity (has extras)}

任何人都知道如何获取该按钮的标识符?

4

1 回答 1

2

UI 上的每个元素都有一种查询方式。您可能不需要 id,因为有时可以使用所述元素的其他特征来查询它。

通常,这是我解决这些问题的方法。例如,我想查询显示在菜单上的元素:

1- 启动葫芦的控制台。您可以按照这些说明进行操作(来自 calabash 的wiki

krukow:~/tmp/android$ calabash-android console login.apk 
irb(main):001:0> start_test_server_in_background
=> nil
#You can now query the UI and see the description

2- 显示我要查询的 UI(在这种情况下,我单击菜单按钮)。然后我在控制台中输入:

 query("*")

这最终将在屏幕上显示所有视图,包括一些甚至不可见的内容。您只需查找要查询的视图的一些特征。就我而言,我会注意到我想要的视图标有特定的文本。

 query(" * marked:'More'")

最终,你可以从视图中的文本到它的 id 到它的位置。由于query返回一个数组,在最坏的情况下,您可以使用它在数组中的索引来获取一个元素。

如果您在编写查询时需要帮助,请尝试该query("*")命令并发布结果。

于 2013-12-20T20:24:12.093 回答