如何使用带有 tuneup.js 的 UIAutomation 验证警报内容

Posted

技术标签:

【中文标题】如何使用带有 tuneup.js 的 UIAutomation 验证警报内容【英文标题】:How to verify Alert contents using UIAutomation with tuneup.js 【发布时间】:2014-07-03 13:10:36 【问题描述】:

我刚开始使用 tuneup.js 尝试 UIAutomation。但我无法使用以下脚本验证警报内容。

 test("Login Screen: Test Alert", function(target, app)
 
    UIATarget.onAlert = function onAlert(alert) 
    
        var alert_title=alert.name();
        assertEquals("Test", alert_title);
        alert.cancelButton().tap();
     
 
 );

即使预期结果“测试”与实际结果(“检查密码”)不匹配,上述代码仍将结果返回为 PASS。 alert.cancelButton().tap();将工作。 谁能帮我解决这个问题?提前致谢。

【问题讨论】:

您能发布您的 assertEquals 代码吗?这不是标准功能。 我也尝试过使用 UIALogger 方法,但问题是,写在函数 onAlert(alert) 中的代码没有被执行。 一秒钟后格式就搞砸了,我只是发布一个答案! 【参考方案1】:

你的语法错了!

UIATarget.onAlert = function onAlert(alert)

应该是:

UIATarget.onAlert = function (alert)

【讨论】:

我尝试了您的答案,但仍然无法使用以下代码。 UIATarget.onAlert = function (alert) var title = alert.name(); UIALogger.logMessage("标题为“+标题+”的警告!");返回假;日志信息:target.frontMostApp().mainWindow().buttons()["LOGIN"].tap() 调试 target.frontMostApp().alert().cancelButton().tap() 调试 嗯,这很有趣。你什么时候设置onAlert?确保它在创建警报的代码之前。只是为了让您知道返回 false 将在您的之后提示默认警报处理程序,这可能是您想要的,也可能不是您想要的。【参考方案2】:

UIATarget.onAlert 是一个与其余测试代码异步执行的回调。从assertEquals 引发的任何异常都不会被测试代码捕获。

您可能应该通过在警报处理程序中设置一个全局变量并从您的测试代码中检查该变量来解决此问题。

【讨论】:

以上是关于如何使用带有 tuneup.js 的 UIAutomation 验证警报内容的主要内容,如果未能解决你的问题,请参考以下文章

Java错误排查无法将类中的构造器应用到给定类型 无法将类 uiauto.web.common.OperationNewLabelPageImpl中的构造器 OperationNewLabe

配置git

Git常用命令 - 随时更新

Android UiAutomator环境搭建及使用

Git基础

git