Selenium 1 和 Selenium 2 之間有什麼區別?
Selenium 或稱為 RC(遠端控制)和 WebDriver 在許多方面都不同,但關鍵區別在於實現層,或者簡單地說,是它們的架構。
顧名思義,RC 是一個遠端控制,它透過獲取瀏覽器的遠端控制權,然後透過注入編寫的自定義指令碼來注入要測試的自動化程式碼。
WebDriver(稱為 Selenium 2)直接作用於瀏覽器,並使用瀏覽器內建功能來觸發測試人員編寫的自動化測試。WebDriver 是遠端控制的繼承者。
Selenium WebDriver 的架構如下:

Selenium 的這兩種變體的工作方式相同,都是透過遠端控制瀏覽器,該瀏覽器可以從其他地方呼叫。
| Selenium 1 | Selenium 2 |
|---|---|
| Selenium 1 = Selenium 遠端控制。 | Selenium 2 = Selenium 1 + WebDriver |
| 依賴於核心庫,這些庫可以在任何支援 JavaScript 的瀏覽器上執行。 | 它以原生方式執行 JavaScript,並且建立的測試用例可以在不同的瀏覽器上執行。 |
| Selenium RC 伺服器充當 Selenium 命令和瀏覽器之間的中介。 | WebDriver 使用作業系統的原生功能直接與作業系統通訊。它為此通訊使用瀏覽器驅動程式。 |
| 在測試過程中,Selenium RC 將 JavaScript 程式(Selenium Core)注入瀏覽器。 | WebDriver 為文件物件模型 (DOM) 互動和瀏覽器控制提供了面向物件的 API。 |
| 它的工作原理是根據 JavaScript 命令指示使用者操作,但這並不強制使用者只能用 JavaScript 編寫自動化測試用例。它可以使用 Java、Ruby、C#、Perl、Python 等。 | 它也使用多種程式語言,如 Perl、Ruby、Python、C#、Java、PHP、.Net 等。 |
| 如果涉及速度,由於 RC 伺服器的中介作用,它會稍微慢一些。 | 它速度很快,因為它可以直接與瀏覽器通訊,而無需使用任何內部代理伺服器。 |
| 不支援移動應用程式測試。 | 使用 AndroidDriver 和 iphoneDriver 進行移動自動化。 |
| 需要真實的瀏覽器才能工作。 | 還支援無頭 HTMLUnit 瀏覽器,它可以更快地執行測試,因為它不需要等待頁面元素載入。 |
| 可以支援新的瀏覽器。 | 無法支援新的瀏覽器。 |
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP