适用于OSX Yosemite的自动化JavaScript

时间:2014-11-18 04:14:50

标签: javascript cocoa osx-yosemite javascript-automation

我们可以使用JavaScript将点击事件发送到Cocoa应用中的webview内的按钮吗?

我正在尝试使用实用程序(Yosemite)下的脚本编辑器进行记录,但遗憾的是无法在webview中记录任何事件。

我尝试使用Apple文档中提供的UI自动化部分下的示例代码和https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/index.html上的testapp(带有webview的可可应用程序)。

TestApp = Application('TestApp')    
TestApp.activate()

delay(1)

SystemEvents = Application('System Events')

TestApp = SystemEvents.processes['TestApp']

TestApp.document.getElementById('testid').click();      // stuck at this last line not sure if I can    
//even call the document object in this way. Getting error undefined variable document.

1 个答案:

答案 0 :(得分:0)

您正在尝试使用浏览器/ DOM Javascript来访问本机应用UI元素。虽然这个环境像浏览器一样使用Javascript,但底层对象模型不是您习惯在网页上看到的DOM。这就是为什么你看到document未定义的原因。

正如文档“UI Automation”部分中的小片段所暗示的那样,您需要访问窗口和按钮对象。当然,您使用的确切路径取决于您的TestApp,但它可能类似于:

TestApp.windows[0].buttons[0].click()

(也可能使用whose等控件ID来扫描这些数组,但是没有经验。)