Я изложил проблемы с вашим сценарием в комментарии, оставленном ниже вашего вопроса.Подводя итог:
① Ваша переменная query
определена как переменная AppleScript, но не используется.Затем вы делаете ссылку на переменную в JavaScript с именем query
, которая не определена и не имеет значения.
② У вашей команды do JavaScript
нет цели в Safari , которая должнавыполнить действие на определенной вкладке или документе.
Решение:
Не видя конкретного сайта, с которым вы работаете, я не могу проверить свое решение, но я уверен, что оно должноисправьте эти две явные ошибки, которые наверняка мешают работе вашего скрипта.Возникнут ли какие-либо другие не связанные с этим проблемы, зависит от специфики сайта.
Итак, вы определили свою переменную AppleScript query
, что я просто собираюсь сделать здесь лениво:
set query to "blah blah blah"
Базовый фрагмент вашего скрипта, требующий внесения изменений, находится здесь:
tell application "Safari" to tell ¬
the front document to do JavaScript ¬
"x=document.querySelectorAll(\"input[name$='_comment1']\"); " & ¬
"for(let i of x){ i.value=" & quoted form of query & "; }"
Сам ваш JavaScript полностью в порядке (хотя я немного изменил его в соответствии со своими предпочтениями, чего, возможно, не следовало делать)).Основными моментами здесь является то, что я сказал Safari , что он будет выполнять JavaScript в front document
;и что теперь JavaScript использует переменную AppleScript query
, с помощью которой он устанавливает значение полей <input>
.
Протестировав вариант этого на каком-то произвольном веб-сайте, который я обнаружил, он появилсяуспешно.
Дайте мне знать, как это получается.