我正在编写一个脚本来从iTunes Store下载免费/非免费应用程序。 每次下载,需要5到10秒。
例如:
重复1000次
download_app()
结束重复
on download_app()
下载东西......
延迟10
结束download_app
为了下载一个应用程序1000次,需要花费大量时间,我想优化这个时间。而不是使用延迟10,还有其他方法可以做到吗?
有没有办法让iTunes下载状态/忙碌状态?
请建议。
高级谢谢
拉赫曼
答案 0 :(得分:1)
我没有具体的解决方案,但以下代码可能会提供一个有用的示例:
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的某些交互方面发生变化(很可能是一个按钮),您可以以类似的方式检测其状态变化,并将其用作继续脚本的提示。
希望有所帮助。 (My example implementation of the code.我发现它非常精确 - 在页面加载完成后脚本会立即继续。)
披露:不是我的原始代码 - 我在互联网上找到了它。