我的应用程序正在使用定位服务,对于自动化测试,我希望能够关闭“应用程序希望使用您当前的位置”弹出窗口。但是,当我尝试在 Instruments 中使用 UIAutomation 脚本执行此操作时,我收到此错误:
Fail: Could not start script, target application is not frontmost.
这是有道理的,因为警报是由不同的过程产生的。但是,Apple 在这种情况下帮助人们自动化测试的计划是什么?
我的应用程序正在使用定位服务,对于自动化测试,我希望能够关闭“应用程序希望使用您当前的位置”弹出窗口。但是,当我尝试在 Instruments 中使用 UIAutomation 脚本执行此操作时,我收到此错误:
Fail: Could not start script, target application is not frontmost.
这是有道理的,因为警报是由不同的过程产生的。但是,Apple 在这种情况下帮助人们自动化测试的计划是什么?
**Try**
UIATarget.onAlert = function onAlert(alert)
{
return true;
}
alertTitle = target.frontMostApp().alert().name();
if(alertTitle==="APP Would Like To Use Your Current Location")
{
target.frontMostApp().alert().buttons()["OK"].tap();
}
在触发位置请求对话框出现之前使用此代码。请注意应用名称周围的特殊引号。
UIATarget.onAlert = function onAlert(alert)
{
if( alert.name()=="“local” Would Like to Use Your Current Location" )
{
alert.buttons()["OK"].tap();
}
else
{
UIALogger.logFail( "Location request dialog expected.");
}
return true;
}
解决方案似乎是使用 AppleScript,在足够的延迟后运行以允许出现警报。您告诉它单击模拟器窗口中的警报按钮。