A Dart client library for WebDriver that provides bindings for browser automation and testing.
webdriver.dart is a Dart client library for WebDriver that provides bindings for browser automation and testing. It allows Dart developers to control web browsers programmatically using the WebDriver protocol, enabling automated testing, web scraping, and UI interaction simulation. The library supports both the legacy JSON Wire spec and the modern W3C WebDriver spec.
Dart developers who need to automate browser interactions for testing web applications, performing integration tests, or building web scraping tools.
As an official Google-maintained package, it offers reliable, spec-compliant WebDriver bindings for Dart with support for both synchronous and asynchronous workflows, making it a trusted choice for browser automation in the Dart ecosystem.
Dart WebDriver client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Maintained by Google, ensuring reliability and regular updates, as evidenced by active CI badges and its status as an official package.
Supports both JSON Wire and W3C WebDriver specs, enabling compatibility with legacy systems and modern browsers like Firefox, with automatic inference during session creation.
Offers both synchronous (sync_io.dart) and asynchronous (io.dart) APIs, catering to different programming styles, though async has limitations.
Tested with ChromeDriver and geckodriver, allowing automation across Chrome and Firefox for reliable cross-browser validation.
Requires manual launching of WebDriver binaries and has a convoluted test process, as admitted in the README with steps like 'bring up chromedriver/geckodriver' and warnings about long run times.
The asynchronous API only works with Chrome using the old JSON wire spec, restricting modern browser automation in async workflows and potentially causing compatibility issues.
README explicitly states that using bazel with Dart libraries is not yet supported, which can hinder adoption in projects relying on bazel for build systems.