#chromedriver #chrome #browser #version #exe #path #browser-path

bin+lib chromedriver-update

确保您的 Chromedriver 与 Chrome 浏览器保持最新

8 个版本 (2 个稳定版)

新版本 1.0.2 2024 年 8 月 15 日
0.2.1 2024 年 8 月 9 日
0.1.3 2024 年 8 月 8 日

#171硬件支持

Download history 356/week @ 2024-08-05 230/week @ 2024-08-12

586 每月下载量

MIT 许可证

20KB
269 代码行

chromedriver

当浏览器/驱动程序版本不匹配时自动下载 Chromedriver。

用法

安装

cargo install chromedriver-update

运行

--browser-path: chrome 浏览器路径
--driver-path: chrome 驱动程序路径,不存在时创建
# mac
chromedriver-update \
    --browser-path="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    --driver-path="/usr/local/bin/chromedriver"

# linux
chromedriver-update \
    --browser-path="/usr/bin/google-chrome" \
    --driver-path="/usr/bin/chromedriver"

# windows (only tested in github workflow)
chromedriver-update \
    --browser-path="C:\setup-chrome\chromium\120.0.6099.109\x64\chrome.exe" \
    --driver-path="C:\setup-chrome\chromedriver.exe"

代码示例

需要 rust >= v1.80

添加包

cargo add chromedriver-update

代码示例

  • /examples/default_args.rs
use chromedriver_update::ChromeDriver;

#[tokio::main]
async fn main() {
    let mut driver = ChromeDriver::new();
    driver.init().await.unwrap();

    println!("driver version {}", driver.version);
    println!("browser version {}", driver.browser_version);

    if driver.need_download() {
        driver.try_download().await.unwrap();
    }
}
  • /examples/custom_args.rs
use chromedriver_update::ChromeDriver;

#[tokio::main]
async fn main() {
    let mut driver = ChromeDriver::new();
    driver
        .set_driver_path("/usr/local/bin/chromedriver")
        .set_browser_path("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome")
        .set_connect_timeout(2000)
        .set_timeout(5000)
        .init()
        .await
        .unwrap();

    println!("driver version {}", driver.version);
    println!("browser version {}", driver.browser_version);

    if !driver.need_download() {
        println!("no need to update driver");
        return;
    }

    println!("updating driver ...");

    match driver.try_download().await {
        Ok(_) => println!("Download driver successful"),
        Err(err) => eprintln!("Download driver failed, {}", err),
    }
}

依赖项

~14–27MB
~411K SLoC