UIATarget.onAlert 在 Instruments 5.0 中不起作用?

Posted

技术标签:

【中文标题】UIATarget.onAlert 在 Instruments 5.0 中不起作用?【英文标题】:UIATarget.onAlert doesn't work in Instruments 5.0? 【发布时间】:2013-10-03 14:01:51 【问题描述】:

这段代码曾经在 Instruments 4.6 的自动化测试中运行良好:

UIATarget.onAlert = function onAlert(alert) 
    var title = alert.name();
    UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");

    return false; // use default handler

我已升级到 XCode 5.0,但此代码不再有效。对警报没有反应——永远不会调用 onAlert。

是我遗漏了什么还是苹果真的把它弄坏了?

【问题讨论】:

你是在 ios 7 下运行的吗?也许它与操作系统版本有关,而不是 XCode 的。 这个用来工作的。 Apple 在 iOS 7 中打破了它。唉,我们必须提交错误报告。 这可能与iOS 7有关。 Instruments自动启动iOS 7 sumulator。顺便问一下,有没有办法告诉 Instruments 运行哪个模拟器? 更换硬件,下次再做,直到再次更换为止。 不,它总是将硬件更改为“iPhone”。我正在运行一个通用应用程序。在 XCode 4.6 中,我使用 defaults write com.apple.iphonesimulator 'SimulateDevice' iPad 来设置模拟器,但它不适用于 XCode 5。 【参考方案1】:

添加延迟。我遇到了同样的问题,并在上​​面添加 UIATarget.localTarget().delay(5); 修复了它。看来,即使 Apple 不建议使用 delay() 函数,我也越来越需要它,因为元素可能需要几秒钟才能显示出来。警报需要一段时间才会出现,而脚本刚刚越过 onAlert。

【讨论】:

【参考方案2】:

我在按钮点击调用后立即拨打了UIATarget.delay(0.2) 电话。它对我有用!

【讨论】:

以上是关于UIATarget.onAlert 在 Instruments 5.0 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在警报功能中使用滚动和单击动作脚本吗?

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

INSTR

VB中Instr函数是啥

Oracle的instr函数

oracle instr函数使用