7 releases

0.2.4 Mar 31, 2020
0.2.3 Jan 28, 2020
0.2.2 Oct 9, 2018
0.2.1 Jun 3, 2018
0.1.0 Jun 4, 2017

#115 in Web programming

Download history 6/week @ 2020-01-20 18/week @ 2020-01-27 7/week @ 2020-02-03 6/week @ 2020-02-10 11/week @ 2020-02-17 62/week @ 2020-02-24 4/week @ 2020-03-02 13/week @ 2020-03-09 13/week @ 2020-03-16 37/week @ 2020-03-23 25/week @ 2020-03-30 51/week @ 2020-04-06 38/week @ 2020-04-13 3/week @ 2020-04-20 4/week @ 2020-04-27 9/week @ 2020-05-04

95 downloads per month

ISC license

956 lines

WebDriver client library in Rust

webdriver_client on crates.io



Source code and issues on GitHub: GitHub last commit

CI build on Travis CI: Build Status

Pull requests welcome.

Getting started

GeckoDriver and ChromeDriver are fully supported as WebDriver backends by the webdriver_client::firefox::GeckoDriver and webdriver_client::chrome::ChromeDriver structs. This crate expects the driver to be on your path.

However HttpDriver will accept any WebDriver server's HTTP URL, so Microsoft WebDriver for Edge, safaridriver for Apple Safari, and OperaDriver for Opera should all work if you start the server yourself.

On Linux

The scripts bin/download_geckodriver and bin/download_chromedriver download the Linux x64 binary releases for geckodriver and chromedriver.

This snippet will download the drivers and place it on your current shell's path:

export PATH=$PATH:$PWD/bin


cargo test runs a few tests. Integration tests require geckodriver and chromedriver to be installed.



  • Added screenshot support: DriverSession::screenshot() and Element::screenshot().
  • Add Element::click().
  • Add Element::send_keys().
  • Add alert functionality to DriverSession: dismiss_alert, accept_alert, get_alert_text, send_alert_text.


  • Added ChromeDriver.
  • www bin has new commands: frames, switchframe.
  • Breaking change: Driver::session and DriverSession::create_session take a NewSessionCmd argument that specifies the session capabilities.
  • New method on DriverSession: browser_name
  • New methods on Element: property, clear, find_element, find_elements raw_reference.
  • Integration tests: many more of them, more assertions and a built-in HTTP server.

This fork is based on equalsraf's excellent work from https://github.com/equalsraf/webdriver.


~144K SLoC