Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 应用程序需要INJECT\u EVENTS权限-需要非优雅解决方案:)_Ruby_Permissions_Automation_Calabash Android - Fatal编程技术网

Ruby 应用程序需要INJECT\u EVENTS权限-需要非优雅解决方案:)

Ruby 应用程序需要INJECT\u EVENTS权限-需要非优雅解决方案:),ruby,permissions,automation,calabash-android,Ruby,Permissions,Automation,Calabash Android,在我正在测试的应用程序中,我可以选择向客户发送反馈。 当我使用这个选项时,gmail打开了,然后我有点“锁定在”我的应用程序之外。 当然,查询“*”返回“[]”,命令press\u back\u按钮给出了上述错误。 环顾四周,找到了一些有关根设备的解决方案 对我来说,这是不可能的——我们正在为客户开发应用程序,作为质量保证经理,我无法测试与最终客户不同的环境 所以, 我正在使用adb shell命令: systemadb外壳输入文本“此%sis%san%sexample” systemadb外壳

在我正在测试的应用程序中,我可以选择向客户发送反馈。 当我使用这个选项时,gmail打开了,然后我有点“锁定在”我的应用程序之外。 当然,查询“*”返回“[]”,命令press\u back\u按钮给出了上述错误。 环顾四周,找到了一些有关根设备的解决方案

对我来说,这是不可能的——我们正在为客户开发应用程序,作为质量保证经理,我无法测试与最终客户不同的环境

所以, 我正在使用adb shell命令:

systemadb外壳输入文本“此%sis%san%sexample”

systemadb外壳输入键事件66——用于输入

systemadb外壳输入键事件4——用于返回

systemadb shell输入keyevent 27以拍摄照片

您可以在此处找到完整的列表-

但是,我在这里工作失明


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

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


这是从我回答的另一个问题复制而来的,如果需要,这个问题会有更多的细节。

当你在gmail屏幕上时,你想做什么?只需截图,然后返回应用程序?写一条消息,添加主题,然后发送。例如,我可以问你为什么需要发送电子邮件吗?假设gmail可以正常工作难道不是很合理吗?这样一来,显示预填充电子邮件地址的屏幕截图就足以让您满意测试通过了?这是我们测试的一部分。此外,一些菜单选项将转到浏览器,或从“多媒体资料”中拍照或选择图片。有时,如果没有为浏览器或图片存储库设置默认值,它会要求您选择浏览器或图片存储库。还有一个问题是其中一个按钮显示在查询中,但是如果键盘打开并隐藏该按钮,当你试着按下它时,你会得到同样的错误。-我需要一个命令,可以告诉我当我的apkI“不在”时,我在屏幕上看到了什么。我已经发布了一个答案,我认为这对你看到屏幕上的内容很有用,但我可以问一下,这是否是您测试的一部分,因为在您使用外部应用程序后,它会以某种方式返回到您的测试应用程序?如果没有,那么我真的建议使用屏幕截图或我在下面发布的ui转储方法来断言存在正确的外部应用程序,而不是麻烦测试外部应用程序。例如,如果您正在测试外部电子邮件应用程序,那么您的底线在哪里,因为需要用户安装的应用程序太多了?