21 个版本
0.0.20 | 2022年8月20日 |
---|---|
0.0.19 | 2021年11月27日 |
0.0.18 | 2021年5月25日 |
0.0.16 | 2021年4月25日 |
0.0.5 | 2021年3月29日 |
#6 in #headless
每月 504 次下载
1MB
14K SLoC
🎭 Playwright for Rust
Playwright 是一个 Rust 库,用于自动化基于 Node.js 库构建的 Chromium、Firefox 和 WebKit。
安装
[dependencies]
playwright = "0.0.18"
使用方法
use playwright::Playwright;
#[tokio::main]
async fn main() -> Result<(), playwright::Error> {
let playwright = Playwright::initialize().await?;
playwright.prepare()?; // Install browsers
let chromium = playwright.chromium();
let browser = chromium.launcher().headless(true).launch().await?;
let context = browser.context_builder().build().await?;
let page = context.new_page().await?;
page.goto_builder("https://example.com/").goto().await?;
// Exec in browser and Deserialize with serde
let s: String = page.eval("() => location.href").await?;
assert_eq!(s, "https://example.com/");
page.click_builder("a").click().await?;
Ok(())
}
异步运行时
这些运行时已通过测试。您可以禁用默认的 tokio 特性,然后选择另一个。
不兼容性
Rust 中函数没有默认参数。现在使用构建器模式传递具有两个或更多可选参数的函数。
Playwright 驱动程序
Playwright 被设计为服务器-客户端。所有依赖 Playwright 客户端的操作都依赖于驱动程序:核心 JS 库和 Node.js 的压缩包。使用此库的应用程序将在构建时将驱动程序打包到 Rust 可执行文件中。第一次运行时会有解压的开销。
注意
playwright-rust redistributes Playwright licensed under the Apache 2.0.
Playwright has NOTICE:
"""
Playwright
Copyright (c) Microsoft Corporation
This software contains code derived from the Puppeteer project (https://github.com/puppeteer/puppeteer),
available under the Apache 2.0 license (https://github.com/puppeteer/puppeteer/blob/master/LICENSE).
"""
Rust 中的浏览器自动化
- atroche/rust-headless-chrome
- saresend/selenium-rs
- https://crates.io/crates/webdriver
- mattsse/chromiumoxide
其他语言
依赖项
~8–24MB
~309K SLoC