Applescript: как «рассказать» приложению в фоновом режиме? - PullRequest
0 голосов
/ 02 июня 2018

Я использую Chrome, чтобы получить HTML-код веб-страницы, созданной с помощью javascript.Яблочный скрипт, который делает все это, должен запускаться каждые 2 минуты.Все работает отлично, за исключением того, что мне явно нужен Chrome, чтобы сделать это полностью в фоновом режиме.Мой сценарий содержит следующие варианты использования Chrome (а также блок для установки theTab, который, кажется, никогда не заставляет Chrome выходить на передний план):

set URL of theTab to theURL
set isLoading to (loading of theTab)
execute front window's active tab javascript javascriptLocation
set theSource to execute front window's active tab javascript "document.documentElement.outerHTML"

Помещение этой строки:

tell application "Finder" to set visible of process "Google Chrome" to false

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

Можно ли как-нибудь надежно и постоянно запустить приложение в фоновом режиме?Или, если это не удастся, существует ли невидимый способ получения javascript, выполняемого на стороне сервера, чтобы appleScript мог получить доступ к сгенерированному источнику?

Chrome 66.0.3359.181, работающий в Mac OS 10.11.6, Applescript 2.5.

1 Ответ

0 голосов
/ 03 июня 2018

Следующее не является ответом на вопрос, который я разместил, но оно является ответом на проблему, которую я пытался решить, именно поэтому я разместил вопрос.

Как указанов моем вопросе мне нужно заполучить HTML-код, который генерирует некоторый javascript на сайте (который не находится под моим контролем).Я не могу выполнить очистку на стороне клиента из-за ограничений CORS на сайте.Я попробовал междоменные инструменты, перечисленные здесь здесь , и не смог заставить их работать.

Поэтому я использовал команду ChromeScriptPlanScript, execute, чтобы сначала выполнить javascript (чтобы произвестиHTML), а затем во второй раз захватить HTML с document.documentElement.outerHTML.Но то, что Chrome вспыхивал на экране каждые 2 минуты в течение дня, не давало мне покоя.

Оказалось, что Chrome также может работать в режиме без головы из командной строки и простоУ меня есть возможность запускать javascript и возвращать сгенерированный HTML!

Так что мой код стал намного проще, и мне не нужно постоянно иметь Chrome в моем списке приложений.Счастливый кодер, я: -)

Вот одна строка, которая возвращает мне сгенерированный HTML-код на нужном мне сайте:

set theSource to (do shell script ((quoted form of POSIX path of googlePath) & " --headless --dump-dom " & theURL))

Спасибо, еще раз, @matt.Я никогда не слышал о режиме без головы и никогда бы не нашел этого без твоего предложения PhantomJS!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...