Я пытаюсь придумать сценарий яблока, который я могу запустить, чтобы заполнить некоторые веб-формы, которые я делаю каждый день (формы билетов JIRA).
Я создал этот JS-скрипт, который работает, когда я запускаю его на консоли Chrome:
document.getElementById('summary').value="Inserted text"
Итак, теперь я создаю свой applescript, чтобы иметь возможность выполнять его извне, но всегда получаю "Синтаксическая ошибка. Ожидаемый конец строки и т.д., Но найден неизвестный токен".
Это код:
tell application "Google Chrome"
execute javascript document.getElementById('summary').value="Inserted text" in document 1
end tell
Я знаю, что приложение работает, но я не понимаю, как решить Синтаксическую ошибку и сделать работу с applescript
Синтаксис in document 1
для Safari.
В Google Chrome вы должны поговорить с active tab
целевого window
, например:
tell application "Google Chrome"
tell active tab of window 1
execute javascript "document.getElementById('summary').value = 'Inserted text';"
end tell
end tell
Или замените номер окна его name
.
Это работает для меня, используя последнюю версию Sierra
tell application "Google Chrome"
execute front window active tab javascript "document.getElementById('summary').value = 'Inserted text';"
end tell
ИЛИ - Сжато только с одной строкой кода
tell application "Google Chrome" to execute front window active tab javascript "document.getElementById('summary').value = 'Inserted text';"
Причина, по которой я выбрал этот код, - это следующий пример.
В Google Chrome я начал с одного окна, затем с одним окном с 4 вкладками. Затем разделите эти вкладки на 4 отдельных окна. После этого я выбрал нижнее правое окно, чтобы сделать это "активным окном". Думая, что нижнее правое окно, будучи активным, теперь будет "окном 1"... Я был бы не прав (согласно результатам этого следующего сценария)
Если я запустил скрипт в "окне 1", он запустился бы в верхнем левом окне браузера, который был в окне 1, когда у меня было только одно окно с одной вкладкой. Он сохранил первоначальное значение. Проблема в том, что это не окно, в котором я хотел запустить мой скрипт
Поэтому, очевидно, окно 1 не обязательно является передним окном
in document 1
синтаксис предназначен для Safari, что было основной причиной сбоя кода в OP. Во-вторых, я сказал: «С Google Chrome вы должны поговорить с активной вкладкой целевого окна, например:», обратите внимание наeg:
в конце этой строки в кавычках! Это пример кода, который не обязательно должен быть абсолютным способом, которым пользователь использует его, и поэтому я также сказал: «Или замените номер окна на егоname
. Пользователь должен формулировать код, чтобы удовлетворить его потребности, не обязательно использовать дословно пример, который показывает, как это может работать!