我在UIAutomation中遇到了这个奇怪的问题。
我正在检查警报。在那,我试图记录警报标题和警报消息。我的代码是:
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);
我没有点击警报中的取消按钮来解雇它。但是,它会自动被窃听。我不知道为什么。即使在logMessages中,我也看到了
target.frontMostApp().alert().cancelButton().tap()
此行自动执行。我的脚本文件中的任何地方都没有此行。这是iOS中的错误吗?
答案 0 :(得分:9)
始终点按提醒上的取消按钮,以防止应用程序阻止,除非 onAlert
回调返回true
。通过返回true
,您告诉警报处理机制您将处理点击相应按钮以解除警报。
将您的提醒回调更改为:
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
或遗漏一个返回值会向警报处理机制发出信号,告知应该点击取消按钮。