跳转至

初始化脚本与扩展

Init 脚本在页面 JavaScript 运行之前执行。请使用它们在首次导航之前安装钩子、polyfill、插桩或测试辅助工具。

启动时脚本

agent-browser --init-script ./instrumentation.js open https://example.com
agent-browser --init-script ./a.js --init-script ./b.js open https://example.com

你也可以通过环境变量来配置脚本:

export AGENT_BROWSER_INIT_SCRIPTS="./a.js,./b.js"
agent-browser open https://example.com

启动时脚本会在浏览器启动时应用。如果守护进程已在运行,请在修改启动时脚本选项之前先关闭它。

内置脚本

agent-browser --enable react-devtools open http://localhost:3000

react-devtools 是目前可用的内置功能。它会在应用程序代码运行之前安装 React DevTools 钩子,并且是 react tree、react inspect、react renders 和 react suspense 所必需的。

移除 Init 脚本

使用 --init-script <path> 在首次导航之前注册脚本。不支持运行时注册。Init 脚本会在后续文档的页面 JavaScript 之前运行,并且不会修改已经执行过的代码。

agent-browser removeinitscript <identifier>

Init 脚本标识符是会话级的。removeinitscript 会从每个已注册该脚本的打开的标签页中移除它,并防止它被重放到后续打开的标签页中。

导航前设置

对于需要在首次真实导航之前安装路由、Cookie 或脚本的流程,可以不带 URL 启动浏览器:

agent-browser batch \
  "open" \
  "network route * --abort --resource-type script" \
  "cookies set --curl cookies.curl --domain localhost" \
  "navigate http://localhost:3000/target"

不带 URL 的 open 会在 about:blank 上启动浏览器,从而在目标页面加载之前留出空间来准备状态。

扩展

agent-browser --extension ./extension open https://example.com
agent-browser --extension ./a --extension ./b open https://example.com

扩展属于启动时选项。它们需要基于本地 Chromium 的浏览器,并且不支持 CDP 连接、云提供商或 Lightpanda。

安全

Init 脚本和扩展会在页面上下文中以高权限运行。请仅从可信的本地路径加载脚本和扩展目录。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser