首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAutomation跳线

UIAutomation跳线
EN

Stack Overflow用户
提问于 2015-09-03 18:32:25
回答 1查看 33关注 0票数 0

UIAutomation没有做任何事情,即使我拖延了很长时间,我也有一段非常困难的时光。在下面的代码片段中,UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");没有被记录,而是在它发生后立即记录。

有时,所有3条测试信息都会打印出来,但通常只打印前两条。

如您所见,我尝试添加延迟并测试消息。

代码语言:javascript
复制
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");
}

我有一个完全相同的代码:

代码语言:javascript
复制
    UIATarget.onAlert = function onAlert(alert) 
    {
        var title = alert.name();
        UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");
        alert.buttons()[0].tap();
    }

在其他地方,它是没有问题的。我真的不知道发生了什么事。你是?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-17 15:36:47

这里的问题是警报触发后设置了警报处理程序。您所看到的所有三条消息出现的时间可能是在应用程序中已经触发警报并被先前的警报处理程序捕获之后。您要做的是在使用警报处理程序之前声明它。我对您的建议是,将其作为在导入语句之后执行的第一个代码。警报可以在任何时候发生,最好尽快让您的处理程序就位,以避免由种族条件引起的奇怪行为。

如果您自己解除警报,您还希望返回true,否则,即使处理程序返回按钮,仪器也会尝试点击按钮,即使它不再存在。这将导致自动化中的错误和/或奇怪的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32383021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档