Как автоматизировать клик Safari с помощью AppleScript без использования JavaScript? - PullRequest
0 голосов
/ 13 июля 2011

Я работаю над проектом, который автоматизирует Safari для запуска пакета тестовых сценариев.Я использую safariwatir для проведения тестов.Иногда, может быть из-за каких-то странных проблем с JavaScript, скрипты терпят неудачу.Например, скрипт для щелчка по ссылке не будет работать, потому что к ссылке присоединен обратный вызов JavaScript, и safariwatir не может правильно вызвать обратный вызов JavaScript.Когда пользователь вручную щелкает ссылку, функциональность работает, как и ожидалось.

Я посмотрел на реализацию safariwatir и узнал, что автоматизация кликов реализована с помощью JavaScript.

Я попытался посмотреть, какиспользовать AppleScript для автоматизации нажатия на кнопку или ссылку, но такой подход кажется хрупким, потому что для того, чтобы получить доступ к кнопке в AppleScript, похоже, что мне нужно знать ее положение в иерархии графического интерфейса пользователя («нажмите накнопка 3, внутри окна 1, группа 5, полоса прокрутки 6 ").

Я думаю, что этот подход лучше, но я не уверен, если это возможно: 1. Учитывая идентификатор элемента HTML, получитьсоответствующий элемент GUI 2. Имитируйте щелчок мышью на элементе GUI, полученном из # 1

Я почти уверен, что # 1 выше в настоящее время не представляется возможным.Однако, если это выполнимо (даже если это еще не реализовано ни в одном из существующих наборов инструментов), я был бы признателен за указания о том, как это сделать.

Спасибо!

1 Ответ

1 голос
/ 13 июля 2011

Я согласен, что сложно вручную выяснить иерархию, чтобы вы знали, что нажимать на appleScript.Однако, если вы знали, где вы хотите нажать, вы можете вместо этого выполнить щелчок по позиции.Я думаю, что javascript может помочь вам найти позицию ... как только вы найдете объект, вы можете получить его положение.

Еще одна проблема, иногда сценарии системных событий для выполнения щелчков тоже не работают, и если вы найдетев таком случае я бы предложил использовать другой инструмент для выполнения физических кликов.Я разработал инструмент командной строки для выполнения кликов и использования его, когда системные события не работают.Вам нужно будет знать положение экрана, чтобы этот инструмент работал.Может быть, это поможет вам.Вы можете найти этот инструмент здесь .

...