使用Python驱动Applescript脚本的最简单的解决方案

时间:2016-09-01 23:21:09

标签: python applescript

由于Apple已经集成了一个完整的UI自动化工具,如Applescript(古老的,是的......丑陋的,是的;但是找不到更好的东西),我想知道我是否可以在Python中运行Applescript脚本单元测试课。

我确实找到了一个集成AS和Python的废弃项目,但我想使用稳定可靠的东西;最重要的是,易于实施。

我确实看过pyObjC并且处理起来非常痛苦(我基本上对Objective-C一无所知),所以我尝试的最后一种方法是使用AS,但我无法获得结果关于动作,除非我使用像Python这样的东西。除非有更简单的方法,否则我不知道

1 个答案:

答案 0 :(得分:0)

py-applescript为PyObjC和NSAppleScript提供了一个易于使用的包装器,用于调用AS处理程序并自动将Python参数和结果转换为AS等效项。 (严格来说,我不再支持py-appscript - 就像py-appscript一样,我不再愿意在糟糕的情况下抛出好时机 - 但py-applescript代码很简单,任何Python用户都可以弄明白如何必要时为自己修理或改进。)

或者,您可以通过将PyObjC和AppleScriptObjC同时用于bridge all the way from Python to AppleScript来避免额外的模块依赖性,尽管它确实需要对两个ObjC桥进行基本的了解才能完成。

在Python中进行Apple事件自动化的唯一另一个选择是通过PyObjC使用OS X的糟糕的Scripting Bridge框架,但由于SB充满了大量难以理解的错误,缺陷和遗漏,这是关于你想要注入测试脚本的最后一件事。

...

OTOH,如果你只是 进行图形用户界面测试,那么通过系统事件调用OS X的低级辅助功能API.app通过Apple的Python脚本无论如何都可能过度杀手,您可能想要查看现有的Python GUI自动化库,它们只是直接包装OS X的辅助功能API。例如Here's a useful-looking list,虽然我无法保证其准确性或完整性,或其链接到的库的质量。