UIAutomation:当应用程序处于后台时更改位置

Pra*_*iga 7 ui-automation ios ios-ui-automation

我正在研究UIAutomation.我需要在应用程序处于后台时更改位置.我试过以下代码行:

var target = UIATarget.localTarget();
UIATarget.localTarget().deactivateAppForDuration(30);
target.setLocation({longitude:77.50, latitude:12.50});
Run Code Online (Sandbox Code Playgroud)

但是target.setLocation直到应用程序到达前台才会被调用.

任何人都可以告诉我如何在应用程序处于后台时更改位置.

que*_*ish 5

不幸的是,UIAutomation只能自动连接它所附带的应用程序.当应用程序不是"活动"时,它没有什么可谈的.在放弃对系统的控制时使用lockForDuration,deactivateAppForDuration等等阻止,使您的应用程序处于非活动状态.当应用程序处于该状态时,UIAutomation无法再发送任何消息.我建议提交雷达,要求在应用程序处于非活动状态时设置位置.

当我在过去遇到类似的问题时,我不得不使用AppleScript来改变模拟器的位置以获得我需要的效果.

您已经更新了注释,表明您正在测试导航应用程序.好!那有点不同.如果您实际上不需要UIAutomation,并且只是尝试将其用作设置位置的方法:

Xcode允许您使用GPX文件模拟路线,这可以与仪器一起使用.

  1. 找到一个合适的GPX文件,最好是一个轨道.
  2. 转到您的项目的计划.在"运行"操作中,转到"选项"选项卡.选中"允许位置模拟"并使用下拉列表添加GPX.
  3. 从Xcode运行您的应用程序.
  4. ...
  5. 利润!