Selenium 經(jīng)歷了三個(gè)版本:Selenium 1,Selenium 2 和 Selenium 3。Selenium 也不是簡(jiǎn)單一個(gè)工具,而是由幾個(gè)工具組成,每個(gè)工具都有其特點(diǎn)和應用場(chǎng)景。
Selenium 誕生于 2004 年,當在 ThoughtWorks 工作的 Jason Huggins 在測試一個(gè)內部應用時(shí)。作為一個(gè)聰明的家伙,他意識到相對于每次改動(dòng)都需要手工進(jìn)行測試,他的時(shí)間應該用得更有價(jià)值。他開(kāi)發(fā)了一個(gè)可以驅動(dòng)頁(yè)面進(jìn)行交互的 Javascript 庫,能讓多瀏覽器自動(dòng)返回測試結果。那個(gè)庫最終變成了 Selenium 的核心,它是 Selenium RC(遠程控制)和 Selenium IDE 所有功能的基礎。Selenium RC 是開(kāi)拓性的,因為沒(méi)有其他產(chǎn)品能讓你使用自己喜歡的語(yǔ)言來(lái)控制瀏覽器。這就是 Selenium 1。
然而,由于它使用了基于 Javascript 的自動(dòng)化引擎,而瀏覽器對 Javascript 又有很多安全限制,有些事情就難以實(shí)現。更糟糕的是,網(wǎng)站應用正變得越來(lái)越強大,它們使用了新瀏覽器提供的各種特性,都使得這些限制讓人痛苦不堪。
在 2006 年,一名 Google 的工程師, Simon Stewart 開(kāi)始基于這個(gè)項目進(jìn)行開(kāi)發(fā),這個(gè)項目被命名為 WebDriver。此時(shí),Google 早已是 Selenium 的重度用戶(hù),但是測試工程師們不得不繞過(guò)它的限制進(jìn)行工具。Simon 需要一款能通過(guò)瀏覽器和操作系統的本地方法直接和瀏覽器進(jìn)行通話(huà)的測試工具,來(lái)解決Javascript 環(huán)境沙箱的問(wèn)題。WebDriver 項目的目標就是要解決 Selenium 的痛點(diǎn)。
到了 2008 年,Selenium 和 WebDriver 兩個(gè)項目合并。Selenium 有著(zhù)豐富的社區和商業(yè)支持,但 WebDriver 顯然代表著(zhù)未來(lái)的趨勢。兩者的合并為所有用戶(hù)提供了一組通用功能,并且借鑒了一些測試自動(dòng)化領(lǐng)域最閃光的思想。這就是 Selenium 2。
2016 年,Selenium 3 誕生。移除了不再使用的 Selenium 1 中的 Selenium RC,并且官方重寫(xiě)了所有的瀏覽器驅動(dòng)。