2010-09-07 59 views
0

标题说几乎全部。我拥有的是短期服务器进程,它为基于Web的JavaScript测试套件提供服务,并可选择随附的后端进行集成测试(请参阅here了解它是如何完成的)。我正在寻找一种更好的方式将iPhone Emulator的Safari导向到给定的URL。干净的方式来编程控制iPhone上的Safari?

更多,可能是可选的背景:

直到iOS版SDK 4.0我已经成功使用AppleScript启动控制的XCode专门准备PhoneGap项目以这种方式:

  1. 的AppleScript(简称“AS”)启动XCode(称为“XC”)
  2. AS指示XC加载之前设置的PhoneGap项目。
  3. AS指示XC启动PhonePap项目。
  4. PhoneGap项目将重定向到服务于测试套件的服务器,并运行测试套件。

在iOS 4.0 SDK中,这只能在第一轮中运行,下次测试套件运行程序尝试使XC执行上述例程时,它会失败,请求停止上一次运行。而且我不能在我的生活中找到一种停止与AS [1]的调试会话的方式,所以我只能运行一个测试套件而无需人工干预,对于我们来说,女巫非常适合我们,因为我们依靠很多每晚进行测试运行。

现在,我真正想要做的只需启动iPhone Emulator,然后在模拟器上启动Safari,并可以将任意URL发送到仿真的Safari。

我到目前为止发现的是iphonesim,但我遇到了this问题,无法让它正确启动预编译的应用程序。一种在iphonesim中规避这个问题的方法也是一个很好的前进方向。

[1]我会接受一种方法来做到这一点,作为一个有效的答案。

回答

1

我对你有一个非常不同的解决方案。

编写一个只包含Web视图的自定义iPhone应用程序。它的行为几乎与MobileSafari相同。然后,在应用程序中嵌入一个小型Web服务器。

然后,您可以通过调用该服务器上的特定网址来控制您的应用程序。

这是一个非常简单的应用程序。将带你30分钟放在一起。

这很容易集成到Xcode或更大的(Apple)脚本中。您可以使用curl等命令打开URL。

+0

有趣。在XCode + PhoneGap方法的概念上类似的方法,但我的印象是你不允许在iOS中打开侦听套接字?我会做一些试验并看看。 – 2010-09-07 20:37:48

+0

行动,似乎我的印象确实是非常错误的:http://github.com/face/MongooseDaemon – 2010-09-07 20:45:50

+0

该模拟器只是一个OS X应用程序。你想做什么,就可以做什么。包括调用OS X特定的东西。或使用OS X服务。 – 2010-09-07 21:04:39

0

帖子稿:最终如何解决它。

过了一会儿,我问到这个问题,在github上用户加入issue 3评论,你需要iphonesim正常工作是什么给予​​绝对路径来启动应用程序。因此,现在我们有一个预构建的PhoneGap项目,其中脚本修改build/Debug-iphonesimulator/PhoneGap.app中的www目录的内容。然后将此目录的绝对路径发送到iphonesim,启动现在指向正确服务器的项目。没有AppleScript和没有XCode(除了最初的构建)。测试套件现在需要1/7的时间才能运行。

相关问题