9个版本
0.2.0 | 2024年5月5日 |
---|---|
0.1.6 | 2023年8月11日 |
0.1.2 | 2023年6月25日 |
0.1.0-canary | 2022年11月25日 |
#4 in #chrome
每月 33 次下载
15KB
247 行
chrome
Chrome实例和面板,可轻松管理启动和关闭。
安装
cargo安装 chrome_driver
用法
- 可以启动和关闭多个Chrome实例。
- 获取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
- POST:
/fork
启动一个新的Chrome实例或使用fork/$port
与启动实例的端口。 - POST:
/shutdown/$PID
关闭实例。例如:curl --location --request POST 'https://127.0.0.1:6000/shutdown/77057'
- 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"
# }
参数
- 第一个参数是chrome应用程序的位置示例 Linux
'/opt/google/chrome/chrome'
。 - 第二个参数是chrome地址
127.0.0.1
。 - 第三个参数可以传递
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
待办事项
- 跟踪启动的端口并在标准调用
fork
时增加端口。 - 周期性健康检查端点以查看实例是否存活以进行清理。
依赖项
~8–18MB
~244K SLoC