Вам нужно использовать веб-сокеты для управления Chrome.Цитирование chromedevtools.github.io :
Ваше приложение может обнаружить доступные страницы, запросив: http://localhost:9222/json и получив объект JSON с информацией о проверяемых страницах вместе сАдреса WebSocket, которые вы могли бы использовать, чтобы начать их инструктаж
Вот как это будет работать (по крайней мере, на моем Mac):
Запустите Chrome
docker pull deepsweet/chromium-headless-remote:69
docker run -it --rm -p 9222:9222 deepsweet/chromium-headless-remote:69
Выборка адресов WebSocket
curl -i "http://localhost:9222/json"
HTTP/1.1 200 OK
Content-Length:361
Content-Type:application/json; charset=UTF-8
[ {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/DC33B65CA373BE2770F2A1031C3B4CBF",
"id": "DC33B65CA373BE2770F2A1031C3B4CBF",
"title": "about:blank",
"type": "page",
"url": "about:blank",
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/DC33B65CA373BE2770F2A1031C3B4CBF"
} ]
Отправка вашей команды
echo '{ "id":2, "method":"Page.navigate", "params":{"url": "http://www.stackoverflow.com"} }' | websocat -t - ws://localhost:9222/devtools/page/DC33B65CA373BE2770F2A1031C3B4CBF
websocat .Вы также можете написать простой скрипт для этого, например здесь
Убедитесь, что страница открыта
curl -i "http://localhost:9222/json"
HTTP/1.1 200 OK
Content-Length:432
Content-Type:application/json; charset=UTF-8
[ {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/DC33B65CA373BE2770F2A1031C3B4CBF",
"id": "DC33B65CA373BE2770F2A1031C3B4CBF",
"title": "Stack Overflow - Where Developers Learn, Share, & Build Careers",
"type": "page",
"url": "https://stackoverflow.com/",
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/DC33B65CA373BE2770F2A1031C3B4CBF"
} ]