У меня нет конкретного решения, однако следующий код может служить полезным примером:
tell application "System Events"
tell application process "Safari"
repeat
if (accessibility description of (get properties of button 1 of text field 1 of splitter group 1 of group 2 of tool bar 1 of window 1)) does not contain "stop" then exit repeat
end repeat
end tell
end tell
Этот код приостанавливает скрипт до тех пор, пока веб-страница не завершит загрузку. Он делает это, входя в бесконечный цикл и выходя из цикла при достижении условия.
Условие кажется довольно сложным, но на самом деле оно проверяет что-то простое. Справа от поля URL-адреса Safari есть кнопка остановки/перезагрузки. Пока страница загружается, на ней отображается значок остановки. Когда страница перестает загружаться, на ней отображается значок перезагрузки. Следовательно, когда мы больше не видим значок остановки, страница, должно быть, завершила загрузку.
Большая часть кода довольно загадочно перемещается по графическому интерфейсу, чтобы идентифицировать описанную кнопку. Термин accessibility description
используется для обозначения текущего состояния кнопки. Описание доступности — это то, что произносится вслух для людей с ограниченными возможностями (например, слабовидящих), использующих Mac OS X в режиме специальных возможностей. Естественно, пока страница загружается, кнопка описывается как «стоп».
Если какой-либо интерактивный аспект графического интерфейса iTunes изменяется (скорее всего, кнопка) после завершения загрузки, вы можете обнаружить его изменение состояния аналогичным образом и использовать это как сигнал для продолжения сценария.
Надеюсь, это поможет. (Мой пример реализации кода. Я обнаружил, что он до смешного точен — скрипт продолжает работать мгновенно. после завершения загрузки страницы.)
Раскрытие информации: исходный код не мой — я нашел его где-то в Интернете.
person
nimble agar
schedule
27.08.2013