Любой способ запустить Google Chrome в безголовом режиме?
я тщательно пересмотрел список переключателей в http://peter.sh/experiments/chromium-command-line-switches/#chrome-frame и я не мог найти ничего, что запустило бы Chrome в скрытом фоновом процессе.
самое близкое, что я смог-это --keep-alive-for-test
+ custom packaged app, но приложение не может выполнить любой переданный код, потому что (как он сообщает) "нет окна - ChromeHidden".
11 ответов:
TL; DR
google-chrome --headless --remote-debugging-port=9222 http://example.com
Вам также понадобится
--disable-gpu
временно.
учебник:
https://developers.google.com/web/updates/2017/04/headless-chrome
идет работа:https://code.google.com/p/chromium/issues/detail?id=546953
основными результатами деятельности являются:
- библиотека, которая безголовый приложения можно ссылку.
- пример приложения, которое демонстрирует использование обезглавленных API.
так можно было бы создать простое приложение, которое работает в консоли без подключения к дисплею.
Обновление Апр 18 ' 16: работа в основном выполнена. Есть общественный форум теперь:
https://groups.google.com/a/chromium.org/forum/#!forum/headless-dev
документации, находящейся в работе:
https://chromium.googlesource.com/chromium/src/+/master/headless/README.md
Обновление Sep 20 ' 16: похоже, что chrome в конечном итоге получит параметр " --headless: https://bugs.chromium.org/p/chromium/issues/detail?id=612904
там был презентация на BlinkOn 6 (16/17 июня 2016)
Обновление 29 Ноября '16: оформление документации
--headless
флаг: https://docs.google.com/document/d/1aIJUzQr3eougZQp90bp4mqGr5gY6hdUice8UPa-Ys90/edit#heading=h.qxqfzv2lj12sОбновление Dec 13 ' 16:
--headless
флаг, как ожидается, будет доступен в Канарских сборках в ближайшее времяОбновление 12 Марта ' 17: Chrome 57 имеет
--headless
рабочий флаг. В ожидании Селен и другие инструменты, чтобы догнать. Руководство пользователя:https://chromium.googlesource.com/chromium/src/+ / lkgr / headless / README. md
этому парню удалось запустить Chrome без головы, используя Xvfb (X virtual frame buffer), чтобы обмануть Chrome, думая, что он отображает окно:
http://e-method.blogspot.fr/2010/11/google-chrome-with-xvfb-headless-server.html
Если вы на Linux, вы можете попробовать это.
Так что в основном вам нужно установить X virtual frame buffer и Google Chrome через:
root@localhost: ~# apt-get install xvfb imagemagick root@localhost: ~# apt-get install google-chrome
затем запустите браузер на дисплее:
root@localhost: ~# xvfb-run --server-args='-screen 0, 1024x768x24' \ google-chrome -start-maximized http://www.example.com \ > & /dev/null & root@localhost: ~# DISPLAY=:99 import -window root myimage.png
или вы можете посмотреть PhantomJS проект, который представляет собой безголовую реализацию WebKit.
вы можете настроить виртуальную машину linux и использовать в ней xvfb.
установка на debian / ubuntu:
sudo aptitude install xvfb
запустите Chrome headless и посетите http://example.com:
xvfb-run --server-args='-screen 0, 1024x768x16' google-chrome -start-maximized http://example.com > /dev/null &
оказывается, он запускается в безголовом режиме, если вы запускаете его как дочерний подпроцесс. Кроме того:
- nircmd.exe может сделать
win hide
на chrome на основе его PID- Autohotkey_L также может запустить Chrome скрытый без кнопки панели задач
The Chromium Embedded Framework project Кажется, что это может соответствовать вашей usecase. У меня нет личного опыта работы с проектом, но я слышал хорошие вещи, и у него есть надежный API, который вы должны использовать для своих целей.
У меня еще недостаточно репутации, чтобы комментировать, но я хочу, чтобы вы, ребята, знали, что режим chrome headless, который упоминает Вануан, на самом деле работает с Selenium webdriver.
в Java вы можете передать флаг chrome через chromeDriver со следующим кодом:
ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); ChromeDriver chromeDriver = new ChromeDriver(options);
Я недавно нашел в этой статье который упоминает несколько параметров командной строки, которые, кажется, делают это. Используя эти ключевые слова я погуглил этот кусок кода, которые, кажется, подтверждают, что эти варианты существуют.
// Does not automatically open a browser window on startup (used when // launching Chrome for the purpose of hosting background apps). const char kNoStartupWindow[] = "no-startup-window"; // Causes Chrome to launch without opening any windows by default. Useful if // one wishes to use Chrome as an ash server. const char kSilentLaunch[] = "silent-launch";
мне удалось успешно запустить Chrome с
--no-startup-window
и действительно он запущен без каких-либо окон. Похоже, что он был запущен правильно, он породил всех типичных детей, но веб-сайт, который я пытался загрузить внутри, похоже, не был на самом деле посетил. Возможно, этот безголовый режим предназначен только для запуска приложений, а не для посещения сайтов безголовых*), но он выглядит очень многообещающим, поскольку обычное рабочее дерево настроено, просто нет окон.второй вариант
--silent-launch
сделал процесс chrome очень тихим. Я не заметил никаких детей, и процесс быстро завершился. Я сомневаюсь, что это будет полезно для этого случая.после того, как я провалил свои попытки с этими вариантами, я сосредоточился на менее сложных способах. На в нижней части списка есть два варианта:
// Specify the initial window position: --window-position=x,y const char kWindowPosition[] = "window-position"; // Specify the initial window size: --window-size=w,h const char kWindowSize[] = "window-size";
я запустил Chrome с опциями, чтобы полностью переместить его из рабочей области:
--window-size=800,600 --window-position=-800,0
и как грязно, как он чувствует, конечно, это не истинный безголовый, но все же окно находится вне моего поля зрения, и все сделано только с параметрами запуска chrome, без внешних инструментов отправки низкоуровневых сообщений window-hide.
*) да, я знаю, что пытаюсь делать странные вещи. По сути, я пытался избавиться от окна Chrome это сохраняется кармой во время испытаний. Я знаю, что могу переключиться на PhantomJS, но мне специально нужно было запустить их в Chrome, и окно выскочило.. а.. тревожно в долгосрочной перспективе.
в настоящее время он находится в стадии разработки, вы можете прочитать дополнительную информацию о нем здесь: https://chromium.googlesource.com/chromium/src/+ / master / headless / README. md
Headless Chromium-это библиотека для запуска Chromium в a безголовая / серверная среда. Ожидается, что следующие сценарии загрузки веб страницы, извлечение метаданных (например, DOM) и создание растровых изображений страница-используя все современные функции веб-платформы хром и моргнуть.
Он в настоящее время работает на Linux, есть хороший презентация.
Я также смог сделать chrome безголовым работать с NightwatchJS. Вот конфигурация, которая позволяет мне использовать его:
"chromeHeadless": { "desiredCapabilities": { "browserName": "chrome", "chromeOptions": { "args": ["--headless"], "binary": "/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" } } }
Chrome 59 имеет возможность создавать экземпляр как безголовый. Найти учебник ниже https://www.automation99.com/2017/07/how-to-use-chrome-headless-using.html?m=1