我想测试应用程序的共享功能,但我不知道如何处理 android 对话框“使用完成操作”(Facebook、Gmail 等)
当我使用query("*")
它时返回一组空字段。
有什么方法可以使用 Calabash 或任何其他方法来测试此类功能(例如共享)来处理此类系统对话框?
我正在物理设备上运行我的测试。
编辑:如果无法检查对话框是否已打开,那么也许可以使用 adb shell 或类似的东西?
我想测试应用程序的共享功能,但我不知道如何处理 android 对话框“使用完成操作”(Facebook、Gmail 等)
当我使用query("*")
它时返回一组空字段。
有什么方法可以使用 Calabash 或任何其他方法来测试此类功能(例如共享)来处理此类系统对话框?
我正在物理设备上运行我的测试。
编辑:如果无法检查对话框是否已打开,那么也许可以使用 adb shell 或类似的东西?
这不是一个非常优雅的解决方案,但您可以使用 adb 模拟屏幕触摸。这里有一个涵盖它的答案 -使用 ADB 模拟触摸
编辑:添加有关使用 adb 转储所有 UI 元素文件的一些详细信息。
在platforms/android-L 文件夹中的android sdk 中,有一个名为uiautomater.jar 的工具,adb 可以使用它来运行测试(尽管我从未使用它)并转储可见元素的xml 文件。
adb shell uiautomator dump test.xml
将创建 xml 文件(在设备上而不是您的计算机上),然后您可以在代码中查看以检查所需的弹出窗口。如果您想与弹出窗口进行交互,那么您可以使用 xml 转储中给出的坐标来选择您想要的,并使用 adb touch 事件来单击它。
不是一个漂亮的解决方案,但希望在您的测试中不会太难:)