UIAutomation:Alert视图上的取消button被轻敲而不实际执行

我在UIAutomation面临这个奇怪的问题。

我正在检查一个警报。 在那里,我正在尝试logging警报标题和警报消息。 我的代码是这样的:

UIATarget.onAlert = function onAlert(alert) { UIALogger.logMessage("alert Shown"); UIALogger.logMessage(frontApp.alert().name()); UIALogger.logMessage(frontApp.alert().staticTexts()[1].value()); } var target = UIATarget.localTarget().frontMostApp().mainWindow(); target.scrollViews()[0].buttons()["saveB"].tap(); UIATarget.localTarget().delay(2); 

我不在点击取消button在警报解雇它。 但是,它正在自动挖掘。 我不知道为什么。 即使在logMessages中,我也看到了

 target.frontMostApp().alert().cancelButton().tap() 

这一行自动执行。 我的脚本文件中没有这行。 这是在iOS的错误?

除非 onAlertcallbackonAlert返回true 否则 onAlert警报上的取消button以阻止应用程序阻塞。 通过返回true ,您告诉警报处理机制, 将处理轻击适当的button来取消警报。

更改您的警报callback看起来像这样:

 UIATarget.onAlert = function onAlert(alert) { UIALogger.logMessage("alert Shown"); UIALogger.logMessage(frontApp.alert().name()); UIALogger.logMessage(frontApp.alert().staticTexts()[1].value()); return true; // <-- Adding this line } 

相反地​​,返回false或者返回值完全告知警报处理机制取消button应该被点击。