我正在编写一个脚本来从 iTunes Store 下载免费/非免费应用程序。每次下载需要 5 到 10 秒。
例如:
重复 1000 次
下载应用程序()
结束重复
在 download_app()
下载东西....
延迟 10
结束下载应用程序
下载一个应用程序 1000 次,需要大量时间,我想优化这个时间。除了使用延迟 10,还有其他方法可以做到这一点吗?
有没有办法获取 iTunes 的下载状态/忙碌状态?
请建议。
高级感谢
拉赫曼
我正在编写一个脚本来从 iTunes Store 下载免费/非免费应用程序。每次下载需要 5 到 10 秒。
例如:
重复 1000 次
下载应用程序()
结束重复
在 download_app()
下载东西....
延迟 10
结束下载应用程序
下载一个应用程序 1000 次,需要大量时间,我想优化这个时间。除了使用延迟 10,还有其他方法可以做到这一点吗?
有没有办法获取 iTunes 的下载状态/忙碌状态?
请建议。
高级感谢
拉赫曼
我没有具体的解决方案,但是以下代码可能会提供一个有用的示例:
tell application "System Events"
tell application process "Safari"
repeat
if (accessibility description of (get properties of button 1 of text field 1 of splitter group 1 of group 2 of tool bar 1 of window 1)) does not contain "stop" then exit repeat
end repeat
end tell
end tell
此代码暂停脚本,直到网页完成加载。它通过进入一个无限循环并在达到某个条件时跳出循环来实现。
这个条件看起来相当复杂,但它确实检查了一些简单的东西。在 Safari URL 字段的右侧有一个停止/重新加载按钮。当页面加载时,它会显示一个停止图标。一旦页面停止加载,它会显示一个重新加载图标。因此,当我们不再看到停止图标时,页面一定已经完成加载。
大多数代码相当神秘地导航 GUI 以识别所描述的按钮。该术语accessibility description
用于标识按钮的当前状态。可访问性描述是向在可访问性模式下运行 Mac OS X 的残障人士(例如视力受损)大声朗读的内容。自然地,当页面加载时,按钮被描述为“停止”。
如果在下载完成时 iTunes GUI 的某些交互方面发生了变化(很可能是一个按钮),您可以以类似的方式检测其状态变化,并将其用作继续执行脚本的提示。
希望有帮助。(我的代码示例实现。我发现它非常精确——页面加载完成后脚本会立即继续。)
披露:不是我的原始代码——我在互联网的某个地方找到了它。