Rust Web自动化Demo

1.新建项目

使用RustCover新建项目,目录如下:

Cargo.toml文件

rust 复制代码
[package]
name = "Demo"
version = "0.1.0"
edition = "2021"

[dependencies]
tokio = { version = "1", features = ["full"] }
thirtyfour = { version = "0.31.0", features = ["component"] }
scraper = "0.15.0"

2.编写代码

以百度网站为例

rust 复制代码
use std::time::Duration;
use thirtyfour::By;
use tokio;
use thirtyfour::prelude::{DesiredCapabilities, WebDriver, WebDriverResult};

#[tokio::test]
async fn navigate_to_url() -> WebDriverResult<()> {
    let capabilities = DesiredCapabilities::chrome();
    let driver = WebDriver::new("http://localhost:9515", capabilities)
        .await
        .expect("Failed to connect to localhost:9515!");
    driver.maximize_window().await?;
    driver.set_implicit_wait_timeout(std::time::Duration::from_secs(10)).await?;
    tokio::time::sleep(Duration::from_secs(3)).await;
    driver
        .goto("https://www.baidu.com")
        .await
        .expect("Couldn't navigate to the URL!");
    tokio::time::sleep(Duration::from_secs(2)).await;
    let search_input = driver.find(By::Id("kw")).await?;
    search_input.send_keys("Hello").await?;
    tokio::time::sleep(Duration::from_secs(2)).await;
    let search_button = driver.find(By::Id("su")).await?;
    search_button.click().await?;
    tokio::time::sleep(Duration::from_secs(2)).await;
    let page_title = driver.title()
        .await
        .expect("Page title not found");
    driver.quit().await?;
    assert_eq!(
        page_title,
        "Hello_百度搜索"
    );
    Ok(())
}

3.运行项目

在RustCover打开终端,输入命令:

bash 复制代码
chromedriver --port=9515

然后再新建终端,输入命令:

bash 复制代码
cargo test
相关推荐
allanGold3 小时前
VSCode rust文件中的api点击无法跳转问题
vscode·rust
碳苯5 小时前
【rCore OS 开源操作系统】Rust HashMap应用 知识点及练习题
开发语言·rust·操作系统
碳苯9 小时前
【rCore OS 开源操作系统】Rust mod模块和static生命周期 知识点及练习题
rust·操作系统·生命周期·模块·os
碳苯9 小时前
【rCore OS 开源操作系统】Rust 练习题题解: Structs
rust·开源·操作系统·os·内存安全
CherishTaoTao11 小时前
Rust环境安装配置
开发语言·后端·rust
程序员吾真本11 小时前
使用默认不可变的Rust变量会踩什么坑
开发语言·后端·rust
凌云行者1 天前
使用rust写一个Web服务器——多线程版本
服务器·前端·rust
碳苯1 天前
【rCore OS 开源操作系统】Rust 练习题题解: Enums
rust·开源·操作系统·os·内存安全
Aspirin_Slash1 天前
egui教程三——切换主题
rust