Google Chrome:通过 websocket 请求加载网页?

ker*_*tj1 3 google-chrome-devtools

是否可以通过远程调试端口强制 Chrome 正在运行的实例显示新网页?

具体来说:

启动浏览器如下:

  chromium-browser --remote-debugging-port=9222 --user-data-dir=remote-profile
Run Code Online (Sandbox Code Playgroud)

建立 Websocket 连接ws://localhost:9222

发送以下 JSON:

   {
     "id":1,
     "method": "Page.navigate",
     "params": {"url": "http://www.google.com"}
   }
Run Code Online (Sandbox Code Playgroud)

上述是否应该导致浏览器导航到谷歌?

ker*_*tj1 5

我找到了解决方案。在这里添加这个以防将来有人需要这个:

1)从以下位置获取websocat:https://github.com/vi/websocat

2)启动chrome:

 chromium-browser --remote-debugging-port=9222 --user-data-dir=remote-profile 
Run Code Online (Sandbox Code Playgroud)

3) 获取选项卡的 URL:

curl http://localhost:9222/json > /tmp/pages
TAB=`grep webSocketDebuggerUrl /tmp/pages | head -1`
URL=`echo $TAB | awk '{print $2}' | sed -e s/\"//g`
Run Code Online (Sandbox Code Playgroud)

4)将其推入Chrome:

echo '{ "id":2, "method":"Page.navigate", "params":{"url": "http://www.royalanarchy.com"} }' \
| ./websocat -t - "$URL"
Run Code Online (Sandbox Code Playgroud)