我试图学习如何使用python和pyObjC自动化我们的Cocoa -Objective C代码库的应用程序测试。
我已经找到了大量关于如何使用pyObjC重新创建目标C app的示例,但是,这涉及使用目标C框架和类在python中重新编写应用程序。我找不到任何使用python或pyObjC执行Cocoa应用程序或组件的示例。
我有一个自定义框架。它包含一个WindowController,它是编辑器的入口点。当我在cocoa应用程序中初始化它并单击一个按钮时,它就会出现,我可以与它进行交互。
按照此处的示例pyObjC example,我可以成功初始化我的窗口控制器并使其显示,但是,我无法与任何控件进行交互,包括关闭窗口按钮。
我的片段:
#!/usr/bin/env python
# Opens the Window
import time
from Foundation import *
bundle = NSBundle.bundleWithPath_('/Library/Frameworks/MyFramework.framework')
controller = bundle.classNamed_('MyController').alloc().initWithWindowNibName_('MyWindow')
controller.showWindow_(0)
# Hold the window open for a bit
time.sleep(20.0)
我也尝试添加:
from AppKit import *
NSApplicationLoad()
True
想想也许会有所帮助但不会。我确定缺少的部分是实际的Cocoa应用程序永远不会被执行,但我似乎无法找到解决方案。
我的目标不是使用python重写Objective C ..它可以帮助我们的QA人员自动化一些应用程序间测试。
任何指导赞赏。