Selenium (ソフトウェア)
実際には、これはSelenium 2.0 API の呼び出しがSelenium 1.0 API の呼び出しよりも大幅に少ないことを意味する。Selenium 1.0は、さまざまなブラウザ操作に豊富なインターフェースを提供しようとしたが、Selenium 2.0は、開発者が独自のドメイン固有言語を作成できる基本的なビルディングブロックのセットを提供することを目的としている。そのようなDSL の1つは既に存在する。Ruby 言語のWatir プロジェクトには、優れた設計の豊富な歴史がある。 Watir-webdriver は、Ruby のSelenium-Webdriver のラッパーとしてWatir API を実装している。 Watir-Webdriverは、WebDriver 仕様とHTML 仕様に基づいて、完全に自動的に作成される。
2012年の初めに、当時Google に、現在はFacebook にいたSimon Stewart(WebDriver の発明者)とMozilla のDavid Burns は、WebDriver をインターネット標準にするためにW3Cと交渉している。2012年7月にワーキングドラフトがリリースされ、2018年6月に勧告が行われた。Selenium-Webdriver(Selenium 2.0)は、Python、Ruby、Java、およびC#で完全に実装およびサポートされている。
Selenium WebDriver は、Selenium RC の後継である。Selenium WebDriver は(Selenese で、またはクライアントAPIを介して送信される)コマンドを受け入れ、それらをブラウザに送信する。これは、ブラウザにコマンドを送信して結果を取得するブラウザ固有のブラウザ・ドライバを介して実装される。ほとんどのブラウザ・ドライバは、実際にブラウザアプリケーション(Firefox、Google Chrome、Internet Explorer、Safari、Microsoft Edge 等)を起動してアクセスする。ヘッドレスブラウザーHtmlUnitを使用してブラウザーをシミュレートするHtmlUnit ブラウザ・ドライバもある。
テストを実行するためにSelenium サーバが必要であったSelenium 1とは異なり、Selenium WebDriver はテストを実行するために特別なサーバを必要としない。代わりに、WebDriver は直接ブラウザインスタンスを起動して制御する。ただし、Selenium Grid をWebDriver と共に使用して、リモートシステムでテストを実行できる(以下参照)。可能な場合、WebDriver はブラウザベースのJavaScript コマンドではなく、ネイティブのオペレーティングシステムレベルの機能を使用してブラウザを駆動する。これにより、セキュリティ制限等、ネイティブコマンドとJavaScript コマンドの微妙な違いに関する問題が回避される。