我的应用程序正在使用位置服务,并且对于自动化测试,我希望能够忽略“APP想要使用您当前位置”弹出窗口。但是,当我尝试在带有UIAutomation脚本的Instruments中执行此操作时,我收到此错误:
Fail: Could not start script, target application is not frontmost.
这种方式很有意义,因为警报是由不同的过程产生的。但是,Apple在这种情况下帮助人们自动化测试的计划是什么呢?
答案 0 :(得分:1)
**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();
}
答案 1 :(得分:0)
解决方案似乎是使用AppleScript,在足够的延迟后运行以允许出现警报。您告诉它单击模拟器窗口中的警报按钮。
答案 2 :(得分:0)
在触发“位置请求”对话框的外观之前使用此代码。请注意应用名称周围的特殊引号。
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;
}