96个发布版本
0.33.0 | 2024年7月21日 |
---|---|
0.32.0 | 2024年4月6日 |
0.32.0-rc.10 | 2024年2月19日 |
0.32.0-rc.8 | 2023年6月4日 |
0.1.0 | 2019年11月30日 |
#11 in HTTP客户端
20,994 每月下载量
用于 25 个crate(20 直接)
400KB
6.5K SLoC
thirtyfour
Thirtyfour是Rust的Selenium / WebDriver库,用于自动化网站UI测试。
功能
- 支持所有W3C WebDriver和WebElement方法
- 直接通过WebDriver(例如chromedriver)创建新的浏览器会话
- 通过Selenium Standalone或Grid创建新的浏览器会话
- 查找元素(通过所有常见的选择器,例如Id、Class、CSS、Tag、XPath)
- 向元素发送键,包括键组合
- 执行JavaScript
- 动作链
- 获取和设置cookie
- 切换到frame/window/element/alert
- 支持Shadow DOM
- 支持Alert
- 捕获/保存浏览器或单个元素的PNG截图
- Chrome DevTools Protocol (CDP)支持(有限)
- 高级查询接口,包括显式等待和各种谓词
- 组件包装器(类似于
Page Object Model
)
功能标志
rustls-tls
:(默认)使用rustls提供TLS支持(通过reqwest)。native-tls
:使用原生TLS(通过reqwest)。component
:(默认)启用Component
derive宏(通过thirtyfour_macros)。
示例
示例假设您已经在系统上运行了chromedriver
。
您可以使用Selenium(请参阅以下说明)或直接使用chromedriver,通过从这里下载与您的Chrome版本匹配的chromedriver: https://chromedriver.chromium.org/downloads
然后按如下方式运行它
chromedriver
示例(异步)
要运行此示例
cargo run --example tokio_async
use thirtyfour::prelude::*;
#[tokio::main]
async fn main() -> WebDriverResult<()> {
let caps = DesiredCapabilities::chrome();
let driver = WebDriver::new("http://localhost:9515", caps).await?;
// Navigate to https://wikipedia.org.
driver.goto("https://wikipedia.org").await?;
let elem_form = driver.find(By::Id("search-form")).await?;
// Find element from element.
let elem_text = elem_form.find(By::Id("searchInput")).await?;
// Type in the search terms.
elem_text.send_keys("selenium").await?;
// Click the search button.
let elem_button = elem_form.find(By::Css("button[type='submit']")).await?;
elem_button.click().await?;
// Look for header to implicitly wait for the page to load.
driver.find(By::ClassName("firstHeading")).await?;
assert_eq!(driver.title().await?, "Selenium - Wikipedia");
// Always explicitly close the browser.
driver.quit().await?;
Ok(())
}
最低支持的Rust版本
“thirtyfour”的MSRV(最小支持的Rust版本)目前是最新版本,因此可以保证运行最新的稳定版本。
许可证
本作品采用MIT或Apache 2.0双重许可。如果您使用本作品,可以选择任一许可证。
有关更多详细信息,请参阅NOTICE文件。
SPDX-许可证-标识符: MIT 或Apache-2.0
依赖项
~9–22MB
~324K SLoC