Ожидаемая ошибка конца строки на appleScript, пытаясь заполнить веб-форму

1

Я пытаюсь придумать сценарий яблока, который я могу запустить, чтобы заполнить некоторые веб-формы, которые я делаю каждый день (формы билетов 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

Теги:
google-chrome
jira
applescript

2 ответа

1
Лучший ответ

Синтаксис 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.

  • 0
    В то время как ваша версия кода будет работать правильно большую часть времени, бывают случаи, когда окно 1 не будет активным окном ... где активное окно фактически предназначалось для цели. Я подробно объяснил сценарий, в котором ваша версия выдает ошибку, потому что отправляет команду JavaScript в неправильное окно.
  • 0
    @ wch1zpink, Во-первых, мой ответ указывает на то, что in document 1 синтаксис предназначен для Safari, что было основной причиной сбоя кода в OP. Во-вторых, я сказал: «С Google Chrome вы должны поговорить с активной вкладкой целевого окна, например:», обратите внимание на eg: в конце этой строки в кавычках! Это пример кода, который не обязательно должен быть абсолютным способом, которым пользователь использует его, и поэтому я также сказал: «Или замените номер окна на его name . Пользователь должен формулировать код, чтобы удовлетворить его потребности, не обязательно использовать дословно пример, который показывает, как это может работать!
Показать ещё 1 комментарий
1

Это работает для меня, используя последнюю версию 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"... Я был бы не прав (согласно результатам этого следующего сценария)

Изображение 174551

Если я запустил скрипт в "окне 1", он запустился бы в верхнем левом окне браузера, который был в окне 1, когда у меня было только одно окно с одной вкладкой. Он сохранил первоначальное значение. Проблема в том, что это не окно, в котором я хотел запустить мой скрипт

Изображение 174551

Поэтому, очевидно, окно 1 не обязательно является передним окном

  • 0
    Это просто два разных способа сказать то же самое, что я уже сказал!
  • 0
    @ user3439894 Я должен с уважением не согласиться .. Ваша версия кода предназначена для окна 1, которое может быть или не быть передним активным окном. Моя версия ориентирована на переднее активное окно независимо от того, является ли оно окном 1 или нет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню