【问题标题】:JavaScript for automation in OSX Yosemite在 OSX Yosemite 中实现自动化的 JavaScript
【发布时间】:2014-11-26 14:27:59
【问题描述】:

我们可以使用 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.

【问题讨论】:

    标签: javascript cocoa osx-yosemite javascript-automation


    【解决方案1】:

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

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

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

    (可能也可以使用whose 或类似方法通过控件ID 来遍历这些数组,但没有这方面的经验。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多