selenium 0.0.4

Browser automation with WebDriver lifecycle, element interaction, JavaScript execution, and multi-browser support.


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


This package provides sub packages which can be used individually:

selenium:webdriver - WebDriver client: bridge, driver, browser capabilities, elements, and roots.

selenium:grid - Selenium Grid server scaffolding: hub, node, models, and routing.

Selenium

License DUB Package Unit Tests

OSChromeFirefoxEdgeSafari
UbuntuChrome / UbuntuFirefox / Ubuntu
macOSChrome / macOSFirefox / macOSSafari / macOS
WindowsChrome / WindowsFirefox / WindowsEdge / Windows

Selenium is a native D implementation of the W3C WebDriver protocol. It drives Chrome, Firefox, Edge, and Safari directly over HTTP, with no external language bindings or C wrappers. The API often mirrors the Selenium Ruby bindings, so it should be familiar to existing Selenium users.

Installation

Add the complete package or a specific subpackage with DUB:

dub add selenium
dub add selenium:webdriver
dub add selenium:grid
PackageContents
seleniumWebDriver and Grid modules.
selenium:webdriverBridge, driver, browser capabilities, elements, roots, cookies, and logging.
selenium:gridGrid models, hub and node scaffolding, and in-process HTTP routing.

The Grid package currently provides models and routing primitives, not a live HTTP server or a complete session distributor.

Quick Start

Install the browser and matching WebDriver executable, then ensure the driver is on PATH:

BrowserWebDriver executable
Chromechromedriver
Firefoxgeckodriver
Edgemsedgedriver
Safarisafaridriver
import selenium;

import std.stdio : writeln;

Driver driver = Driver.start(new Chrome());
scope (exit) driver.stop();

driver.go("https://example.com");
writeln(driver.title);

Driver.start() can instead select the first known WebDriver executable found on PATH. The library does not download browsers or drivers.

Documentation

Roadmap

WebDriver protocol

  • [ ] Fix Safari support (see integration tests)
  • [ ] Asynchronous script execution (POST /execute/async)
  • [ ] Actions API, including perform and release
  • [ ] Alert text, accept, dismiss, and prompt input commands
  • [ ] Computed accessibility role and label accessors
  • [ ] Page printing (POST /print)
  • [ ] First-class timeout retrieval and updates
  • [ ] Full window rectangle support, including window position

Client API

  • [ ] Explicit waits with reusable expected conditions
  • [ ] Special keys such as Enter, Tab, Escape, and arrows for sendKeys
  • [ ] Convenience locators such as id, name, and class name
  • [ ] Element display state (isDisplayed)
  • [ ] Select-element helper

Grid

  • [ ] Live HTTP transport for hubs and nodes
  • [ ] Node registration, heartbeat, draining, and removal
  • [ ] Capability matching, session allocation, and command forwarding

Quality

  • [ ] Grid server and client (multi-session routing) tests
  • [ ] W3C WebDriver compliance tests
  • [ ] More than 70% code coverage for every source file

License

Selenium is licensed under Apache-2.0.

Authors:
  • cet
Sub packages:
selenium:webdriver, selenium:grid
Dependencies:
requests
Versions:
0.0.4 2026-Sep-10
0.0.3 2026-Sep-08
0.0.2 2026-Jun-28
0.0.1 2026-Jun-28
~master 2026-Sep-10
Show all 5 versions
Download Stats:
  • 0 downloads today

  • 3 downloads this week

  • 3 downloads this month

  • 4 downloads total

Score:
0.2
Short URL:
selenium.dub.pm