9个版本
0.1.3 |
|
---|---|
0.1.2 |
|
0.1.0-beta8 | 2023年7月1日 |
0.1.0-beta7 | 2023年6月14日 |
#1249 in Web编程
在2个crates中使用(通过wda)
455KB
11K SLoC
一个WebDriver客户端库。
概述
WebDriver是一个广泛采用的W3C标准,用于浏览器自动化。它以平台和语言无关的方式定义了算法。它打开了使用系统编程语言(如Rust或C/C++)进行WebUI测试/浏览器自动化的可能性,从而提高了性能、效率和安全性。
此crate提供客户端WebDriver的纯Rust实现,目标如下
-
标准兼容性:它跟踪经典WebDriver和现代BiDi标准。
-
低开销:它没有运行时依赖。
-
卓越的性能:它力求实现零拷贝操作。
示例
注意:假设使用GeckoDriver,默认设置。
导航到网站
use wdc::{GeckoDriver, WdcError, WebDrvClient};
go_w3c().unwrap();
fn go_w3c() -> Result<(), WdcError> {
let wdc: WebDrvClient<GeckoDriver> = wdc::init("127.0.0.1", 4444, 10)?;
let url = "https://www.w3.org/standards";
wdc.navi_to(url)?;
// ...whatever tests/automation on "w3.org"
Ok(())
}
在网站上运行JavaScript
use wdc::{GeckoDriver, WdcError, WebDrvClient};
check_out_w3c_history().unwrap();
fn check_out_w3c_history() -> Result<(), WdcError> {
let wdc: WebDrvClient<GeckoDriver> = wdc::init("127.0.0.1", 4444, 10)?;
let url = "https://www.w3.org/Consortium/facts.html";
let js_result = wdc.navi_to(url)?.exec_sync(
"return document.getElementById('history').nextElementSibling.innerText;",
vec![],
)?;
let w3c_history = String::from_utf8_lossy(&js_result);
assert!(w3c_history.contains("Tim Berners-Lee"));
assert!(w3c_history.contains("World Wide Web"));
assert!(w3c_history.contains("HTML"));
Ok(())
}
依赖项
~2.7–4.5MB
~85K SLoC