0

我正在编写一个脚本来从 iTunes Store 下载免费/非免费应用程序。每次下载需要 5 到 10 秒。

例如:

重复 1000 次

下载应用程序()

结束重复

在 download_app()

下载东西....

延迟 10

结束下载应用程序

下载一个应用程序 1000 次,需要大量时间,我想优化这个时间。除了使用延迟 10,还有其他方法可以做到这一点吗?

有没有办法获取 iTunes 的下载状态/忙碌状态?

请建议。

高级感谢

拉赫曼

4

1 回答 1

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 的某些交互方面发生了变化(很可能是一个按钮),您可以以类似的方式检测其状态变化,并将其用作继续执行脚本的提示。

希望有帮助。(我的代码示例实现。我发​​现它非常精确——页面加载完成后脚本会立即继续。)

披露:不是我的原始代码——我在互联网的某个地方找到了它。

于 2013-08-27T03:11:04.280 回答