9个版本

0.2.0 2024年5月5日
0.1.6 2023年8月11日
0.1.2 2023年6月25日
0.1.0-canary2022年11月25日

#4 in #chrome

每月 33 次下载

MIT 许可证

15KB
247

chrome

Chrome实例和面板,可轻松管理启动和关闭。

安装

cargo安装 chrome_driver

用法

  1. 可以启动和关闭多个Chrome实例。
  2. 获取chrome ws连接和状态。

当前实例在通过API启动时将Chrome绑定到0.0.0.0。

使用环境变量REMOTE_ADDRESS在物理或网络之间更改Chrome实例的地址。

当使用端口6000获取Chrome容器状态时,应用程序将通过alp健康检查。

需要一个旁加载应用程序来在负载均衡器上运行Chrome,这是项目的主要目的之一。

Chrome的默认端口是9222

不使用Docker构建

为了不使用Docker构建,请将环境变量BUILD_CHROME设置为true。

Mac

如果您在本地运行,请使用以下命令以第一个参数chrome_driver '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'启动参数。

API

  1. POST: /fork 启动一个新的Chrome实例或使用 fork/$port 与启动实例的端口。
  2. POST: /shutdown/$PID 关闭实例。例如:curl --location --request POST 'https://127.0.0.1:6000/shutdown/77057'
  3. POST: /json/version 获取连接到WebSocket的Chrome实例的JSON信息。

Curl示例

/fork

curl --location --request POST 'https://127.0.0.1:6000/fork'
# PID 87659

/shutdown

curl --location --request POST 'https://127.0.0.1:6000/shutdown'
# you can also pass in a PID at the subpath /shutdown/:id

/json/version

curl --location --request GET 'https://127.0.0.1:6000/json/version' \
--header 'Content-Type: application/json'
# {
#    "Browser": "HeadlessChrome/114.0.5735.133",
#    "Protocol-Version": "1.3",
#    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/114.0.5735.133 Safari/537.36",
#    "V8-Version": "11.4.183.23",
#    "WebKit-Version": "537.36 (@fbfa2ce68d01b2201d8c667c2e73f648a61c4f4a)",
#    "webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/74f18759-f4b3-4b1f-a68c-942570542f0e"
# }

参数

  1. 第一个参数是chrome应用程序的位置示例 Linux '/opt/google/chrome/chrome'
  2. 第二个参数是chrome地址 127.0.0.1
  3. 第三个参数可以传递init来自动在9222上启动chrome。

启动chrome的示例(所有参数都是可选的)

chrome_driver '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' 127.0.0.1 init
# Chrome PID: 87659
# Chrome server at localhost:6000

# DevTools listening on ws://127.0.0.1:9222/devtools/browser/c789f9e0-7f65-495d-baee-243eb454ea15

待办事项

  1. 跟踪启动的端口并在标准调用fork时增加端口。
  2. 周期性健康检查端点以查看实例是否存活以进行清理。

依赖项

~8–18MB
~244K SLoC