Selenium 1.0是第一個基於瀏覽器的開源自動化測試工具。它可使用全部支持http庫的編程語言,也能夠運行在全部支持javascript的瀏覽器上。固然它 也有它的缺點。在運行selenium 1.0程序以前,咱們得先啓動selenium服務器端,也就是selenium RC。而selenium RC是由javascript實現的,每個瀏覽器對於執行JavaScript都有很嚴格的安全限制,以防止用戶被惡意腳本攻擊,這致使在某些狀況下用 selenium 1.0很麻煩。javascript
selenium 1.0有如下3個問題亟待解決:java
WebDriver項目是由Simon Stewart(來自Google)建立的,是一個很是便捷的自動化測試工具。它採用HtmlUnit,能夠直接在內存中運行。並且WebDriver 還能夠調用操做系統的API,尤爲當用戶須要模擬鼠標和鍵盤進行真實的頁面操做的時候,這項能力做用尤其明顯。Webdriver也有它的缺點,使用它控 制瀏覽器的時候,須要依賴採用本機支持的獨立客戶端。WebDriver僅提供Java綁定,並不能支持Selenium 1 所能支持的那麼多瀏覽器。編程
Selenium 1.0 +WebDriver =Selenium 2.0瀏覽器
因而,爲了綜合了selenium 1和WebDriver的優勢, Selenium 2(也被稱爲 Selenium WebDriver)面世。Selenium 2具備來自WebDriver的清晰面向對象API,並能以最佳的方式與瀏覽器進行交互。Selenium 2不使用JavaScript沙盒,支持多種瀏覽器和多語言綁定。具體的有:安全
Selenium 2支持的語言有Java、C#、Ruby和Python。Selenium 2 還提供基於HtmlUnit的無外設驅動,是用於測試Web應用程序的Java框架。HtmlUnit運行速度特別快,但它不是一個真正與真實瀏覽器相關聯的驅動。服務器
目前說的selenium,通常包括如下四個工具:框架
Selenium Core:Selenium 核心內容,是IDE和RC的引擎。內部由JavaScript函數構成,經過調用這些函數來實現對瀏覽器的各類操做。編程語言
Selenium IDE:一款Firefox 插件。具備錄製、編輯以及回放腳本的功能,易於上手,對於初學者能夠開發一些簡單的測試腳本。函數
Selenium WebDriver(Selenium 2.0):由Selenium 和WebDriver合併而成。它支持WebDriver API和底層技術以及在WebDriver API下的Selenium 1.0的技術。Selenium 2.0仍然能夠運行於Selenium 1.0的Selenium RC接口以支持向後兼容。工具
Selenium RC(Selenium 1.0):Selenium Remote Control。遠程控制,也就是經過腳本操做瀏覽器。它容許測試人員使用一種程序語言根據需求擴張測試腳本的複雜度、延展度。主要包括三部分:launcher,http proxy,selenium core。
Selenium Grid:容許同時在不一樣的環境上運行多個測試任務。
備註:
Selenium語言,使用(Command,Target,Value)三種元素組成一個行爲,可使用Selenium IDE輔助錄製腳本,不懂測試的人員均可以輕鬆編寫測試案例。
缺點是:Selenium 語言沒有條件(if),沒有循環(for),使得編寫複雜的測試變得困難甚至不可能。