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

UIAutomation和NSNotification
EN

Stack Overflow用户
提问于 2012-06-05 05:26:57
回答 2查看 510关注 0票数 0

我希望能够使用UIAutomation来测试应用程序。我遇到的问题是,我需要从网络上下载分配的数据。有没有办法暂停UIAutomation脚本直到发布NSNotification,或者我只需要delay()的时间比我认为下载数据所需的时间更长。等待一段时间并不可取,因为有时数据不需要重新下载。

任何帮助/链接都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-13 00:56:10

Jack的回答适用于大多数细节,但一些网络工作发生在后台队列上,并且没有进度指示器。

我最终编写了一个帮助器,将CGRectZero UIView粘贴到元素中。然后我们可以等待这个元素变得有效。它不像我希望的那样干净,但它在工作。

代码语言:javascript
复制
waitForElementNamed: function(name, element, timeout) {
  timeout = timeout || 10
  log("Waiting for " + timeout + " seconds")
  var valid = false
  for (var i = 0; i < timeout; i++) {
      UIATarget.localTarget().pushTimeout(.5)
      valid = element.elements()[name].isValid()
      if (valid) {
      log("Found Element " + name)
      return
      }
      UIATarget.localTarget().popTimeout()
      target.delay(.5)
  }
  if (!valid) {
      failed("Wait Timedout [" + timeout + "]")
  }
}

它不是很漂亮,但它是有效的。

票数 1
EN

Stack Overflow用户

发布于 2012-06-05 07:54:37

UIAutomation有一个很棒的函数,叫做waitForInvalid()。如果你有一个进度条或者其他东西,在数据下载完成后会显示出来,然后将其删除,你可以使用它。

这也适用于用户已经拥有数据而您没有显示UI的情况,因为函数会立即返回。

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

https://stackoverflow.com/questions/10888613

复制
相关文章

相似问题

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