2013-11-27 63 views
2

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

现在我该如何知道该按钮的标识符,以告诉calabash-android按下该按钮?

我试图仿真器,每次我按新的电子邮件按钮时运行调试我收到这在调试:

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

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

回答

2

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

通常,这里是我如何解决这些问题。举例来说,我想查询菜单上显示的元素:

1-启动葫芦控制台。您可以按照以下说明(从葫芦的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("*")命令并发布结果。

+0

非常感谢您的回复,我有一个解决方法来使用按钮的尺寸。但我会尝试你的解决方案。 – user3042699