Calabash处理“使用完成操作”对话框

我想测试应用程序的共享function,但我不知道如何处理Android对话框“使用完整操作”(Facebook,Gmail等)
当我使用query("*")它返回一组空字段。
有没有办法使用Calabash或任何其他方式来处理这样的系统对话框来测试共享等function?

我在物理设备上运行我的测试。

编辑:如果无法检查对话框是否已打开,那么也许可以使用adb shell或类似的东西?

这不是一个非常优雅的解决方案,但您可以使用adb模拟屏幕触摸。 这里有一个答案 – 使用ADB模拟触摸

编辑:添加有关使用adb转储所有UI元素的文件的一些详细信息。

在平台/ android-L文件夹中的android sdk中有一个名为uiautomater.jar的工具,adb可以用它来运行测试(尽管我从来没有用过它)并转储可见元素的xml文件。

adb shell uiautomator dump test.xml

将创建xml文件(在设备而不是您的计算机上),然后您可以在代码中查看以检查所需的弹出窗口。 如果要与弹出窗口进行交互,则可以使用xml转储中给出的坐标来选择所需的坐标,并使用adb touch事件单击它。

不是一个漂亮的解决方案,但希望不太难以进入您的测试:)