JavaScript для автоматизации в OSX Yosemite

Можем ли мы отправить событие щелчка на кнопку внутри веб-просмотра в приложении Cocoa с помощью JavaScript?

Я пытаюсь использовать редактор сценариев в утилитах (Yosemite) для записи, но, к сожалению, не могу записывать какие-либо события внутри веб-просмотра.

Я попытался использовать пример кода в разделе автоматизации пользовательского интерфейса, представленном в документации Apple, с testapp (приложение какао с веб-просмотром) по адресу https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/index.html.

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.

person samn    schedule 18.11.2014    source источник


Ответы (1)


Вы пытаетесь использовать браузер/DOM Javascript для доступа к собственным элементам пользовательского интерфейса приложения. Хотя эта среда использует Javascript, как и браузер, базовая объектная модель — это не DOM, который вы привыкли видеть на веб-странице. Вот почему вы видите, что document не определено.

Как следует из небольшого фрагмента в разделе документации «Автоматизация пользовательского интерфейса», вам необходимо получить доступ к объектам окна и кнопки. Точный путь, который вы будете использовать, конечно, зависит от вашего TestApp, но он может выглядеть примерно так:

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

(Вероятно, также можно просматривать эти массивы по идентификатору элемента управления, используя whose или тому подобное, но у меня нет опыта в этом.)

person Ben Zotto    schedule 22.11.2014