thirtyfour rust库的使用方法
最近在学习Rust编程,听说thirtyfour这个库很适合做Web自动化测试,但官方文档看起来有点简略。想请教一下:
- thirtyfour库的基本用法是怎样的?能否给个简单的代码示例?
- 这个库支持哪些浏览器?需要额外安装驱动吗?
- 在处理动态加载网页时有什么特别的技巧吗?
- 和Selenium相比,thirtyfour有什么优势或不足?
刚接触这个库,希望能得到一些使用经验分享,谢谢!
2 回复
thirtyfour是一个Rust的WebDriver客户端库,用于浏览器自动化。使用方法:
- 添加依赖到Cargo.toml:
[dependencies]
thirtyfour = "0.30"
tokio = { version = "1", features = ["full"] }
- 基本示例:
use thirtyfour::prelude::*;
#[tokio::main]
async fn main() -> WebDriverResult<()> {
let caps = DesiredCapabilities::chrome();
let driver = WebDriver::new("http://localhost:9515", caps).await?;
driver.goto("https://example.com").await?;
let elem = driver.find(By::Id("search")).await?;
elem.send_keys("rust").await?;
driver.quit().await?;
Ok(())
}
需要先启动WebDriver服务(如ChromeDriver)。
thirtyfour
是一个基于 Rust 的 Selenium WebDriver 库,用于自动化浏览器操作。以下是基本使用方法:
安装依赖
在 Cargo.toml
中添加:
[dependencies]
thirtyfour = "0.27"
tokio = { version = "1.0", features = ["full"] }
基本使用示例
use thirtyfour::prelude::*;
#[tokio::main]
async fn main() -> WebDriverResult<()> {
// 启动 WebDriver(需先运行 chromedriver)
let caps = DesiredCapabilities::chrome();
let driver = WebDriver::new("http://localhost:9515", caps).await?;
// 导航到网页
driver.goto("https://www.example.com").await?;
// 查找元素并操作
let elem = driver.find(By::Id("search")).await?;
elem.send_keys("thirtyfour").await?;
elem.click().await?;
// 获取页面标题
let title = driver.title().await?;
println!("页面标题: {}", title);
// 关闭浏览器
driver.quit().await?;
Ok(())
}
常用功能
元素定位
// 多种定位方式
let by_id = driver.find(By::Id("element_id")).await?;
let by_name = driver.find(By::Name("username")).await?;
let by_css = driver.find(By::Css("div.container > input")).await?;
let by_xpath = driver.find(By::XPath("//button[@type='submit']")).await?;
表单操作
// 输入文本
elem.send_keys("hello world").await?;
// 清空输入框
elem.clear().await?;
// 提交表单
elem.submit().await?;
等待机制
use std::time::Duration;
use thirtyfour::extensions::query::ElementQuery;
// 显式等待
let elem = driver
.query(By::Id("dynamic_element"))
.wait(Duration::from_secs(10), Duration::from_millis(500))
.first()
.await?;
运行前准备
- 下载对应浏览器的 WebDriver(如 chromedriver)
- 启动 WebDriver 服务:
chromedriver --port=9515
- 运行你的 Rust 程序
这个库提供了完整的浏览器自动化功能,支持 Chrome、Firefox 等主流浏览器。