8 个版本
0.1.0-alpha.8 | 2021年7月2日 |
---|---|
0.1.0-alpha.7 | 2021年2月20日 |
0.1.0-alpha.5 | 2021年2月15日 |
0.1.0-alpha.3 | 2021年2月13日 |
0.1.0-alpha.1 | 2021年2月12日 |
#15 in #chromium
155KB
1K SLoC
chrome-remote-interface
Chrome 开发者工具协议 客户端。
目前正在开发中。
支持浏览器
- Chromium(最新版)
浏览器发现
- 如果指定,使用环境变量
CRI_CHROME_BIN
。 - 搜索平台路径。
- Windows:
C:\Program Files\Chromium\Application\chrome.exe
- Mac:
/Applications/Chromium.app/Contents/MacOS/Chromium
- Linux:
/usr/bin/chromium
或/usr/bin/chromium-browser
- Windows:
- 通过
PATH
环境变量查找。
示例
use chrome_remote_interface::Browser;
use chrome_remote_interface::model::target::{CreateTargetCommand, AttachToTargetCommand};
#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
let browser = Browser::launcher()
.headless(true) // headless mode (Default)
.launch()
.await?;
browser.run_with(|mut client| async move {
// Open new page
let response = client.request(CreateTargetCommand::builder()
.url("https://example.org/".into())
.build()
.unwrap()
).await?;
// Attach opened page.
let response = client
.request(AttachToTargetCommand::new((*response).clone(), Some(true)))
.await?;
// construct attached session.
let mut session = client.session(response);
// DO STUFF
// ...
Ok(())
}).await
}
许可证
许可协议为以下之一
- Apache 许可证2.0版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非你明确声明,否则根据 Apache-2.0 许可证定义,你提交的任何有意包含在作品中的贡献,将按照上述方式双许可,不附加任何额外条款或条件!
许可证: MIT OR Apache-2.0
依赖项
~10–43MB
~669K SLoC