UIAutomation没有做任何事情,即使我拖延了很长时间,我也有一段非常困难的时光。在下面的代码片段中,UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");没有被记录,而是在它发生后立即记录。
有时,所有3条测试信息都会打印出来,但通常只打印前两条。
如您所见,我尝试添加延迟并测试消息。
UIALogger.logMessage("Tap Signup button");
var signupButton = window.buttons()["Signup Button"];
if (signupButton.checkIsValid())
{
signupButton.tap();
UIALogger.logMessage("test message");
target.delay(3);
if (app.alert())
{
target.delay(3);
UIALogger.logMessage("test message 2");
UIATarget.onAlert = function onAlert(alert)
{
target.delay(10);
UIALogger.logMessage("test message 3");
var title = alert.name();
UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");
alert.buttons()[0].tap();
}
}
target.delay(1);
}
else
{
UIALogger.logError("Signup Button not found");
}我有一个完全相同的代码:
UIATarget.onAlert = function onAlert(alert)
{
var title = alert.name();
UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");
alert.buttons()[0].tap();
}在其他地方,它是没有问题的。我真的不知道发生了什么事。你是?
发布于 2015-09-17 15:36:47
这里的问题是警报触发后设置了警报处理程序。您所看到的所有三条消息出现的时间可能是在应用程序中已经触发警报并被先前的警报处理程序捕获之后。您要做的是在使用警报处理程序之前声明它。我对您的建议是,将其作为在导入语句之后执行的第一个代码。警报可以在任何时候发生,最好尽快让您的处理程序就位,以避免由种族条件引起的奇怪行为。
如果您自己解除警报,您还希望返回true,否则,即使处理程序返回按钮,仪器也会尝试点击按钮,即使它不再存在。这将导致自动化中的错误和/或奇怪的行为。
https://stackoverflow.com/questions/32383021
复制相似问题