#selenium #browser #testing #automation

selenium-rs

selenium-rs 是 selenium webdriver 规范 (https://www.w3.org/TR/webdriver1/) 的客户端。它旨在简化 Rust 中的行为驱动测试,并用于自动化浏览器交互。

3 个版本

使用旧的 Rust 2015

0.1.2 2020 年 2 月 13 日
0.1.1 2018 年 9 月 12 日
0.1.0 2018 年 9 月 12 日

#703硬件支持

Download history 19/week @ 2024-03-11 24/week @ 2024-03-18 31/week @ 2024-03-25 79/week @ 2024-04-01 17/week @ 2024-04-08 10/week @ 2024-04-15 14/week @ 2024-04-22 10/week @ 2024-04-29 7/week @ 2024-05-06 36/week @ 2024-05-13 24/week @ 2024-05-20 22/week @ 2024-05-27 34/week @ 2024-06-03 14/week @ 2024-06-10 31/week @ 2024-06-17 14/week @ 2024-06-24

每月 96 次下载

MIT 许可证

24KB
438 代码行

Selenium-rs

GitHub issues

关于

Selenium-rs 是 selenium webdriver (https://www.seleniumhq.org/) 的简单客户端。它构建于 webdriver 协议之上(规范可在 此处 找到)。它目前支持 chrome 驱动,Gecko(firefox)支持正在开发中。

安装

[dependencies]
selenium-rs = "0.1.0"

注意,selenium-rs 还需要一个正在运行的 selenium webdriver 实例,可在 此处 找到。只需下载 jar 文件并运行它以实例化 selenium webdriver 服务器。

文档: docs.rs

示例用法

示例 - 导航到网页

use selenium_rs::webdriver::{Browser,WebDriver};

let mut driver= WebDriver::new(Browser::Chrome);
driver.start_session();

driver.navigate("https://rust-lang.net.cn"); 
assert_eq!(driver.get_current_url().unwrap(), String::from("https://rust-lang.net.cn/"));
use selenium_rs::webdriver::{Browser, WebDriver, Selector};
let mut driver = WebDriver::new(Browser::Chrome);

driver.start_session();
driver.navigate("http://google.com");
let search_bar = driver.find_element(Selector::CSS, "input[maxlength=\"2048\"]").unwrap();

search_bar.type_text("selenium-rs github");
let search_button = driver.find_element(Selector::CSS, "input[name=\"btnK\"]").unwrap();
search_button.click();
search_button.click();

示例 - 检查元素属性

use selenium_rs::webdriver::{Selector, Browser, WebDriver};
use selenium_rs::element::Element;

let mut driver = WebDriver::new(Browser::Chrome);
driver.start_session();
driver.navigate("http://www.google.com");
let search_form =  driver.find_element(Selector::CSS, "#searchform").unwrap();
assert!(search_form.get_css_value("min-width").unwrap() == "980px");

当前状态

目前,该项目支持 webdriver 规范提供的许多重要功能。然而,它还远未完善。随着我找到时间实现 webdriver 规范中描述的所有内容,支持功能将定期增加。正在进行的功能将在 此处 跟踪。

注意:目前仅测试了 Selenium 3.14

贡献

欢迎提交拉取请求!请参阅 问题跟踪器 了解当前正在开发的功能、改进和错误修复。

许可证

此项目在 MIT 许可证下提供。

依赖关系

~19MB
~423K SLoC