Kiến trúc của Selenium WebDriver đơn giản hơn rất nhiều so với Selenium RC. Selenium WebDriver làm việc trực tiếp với trình duyệt ở mức độ hệ điều hành trong khi Selenium RC làm việc với trình duyệt thông qua một hệ thống Server ảo – Selenium Remote Control (RC) Server. Nó cứ như có một người trung gian để chuyển lệnh từ test case của mình lên trình duyệt vậy.
Tốc độ
Tất nhiên, khi làm việc trực tiếp giữa hai người (Selenium WebDriver – trình duyệt) thì nó phải nhanh hơn làm việc thông qua người trung gian (Selenium RC – Selenium RC Server – trình duyệt) rồi hen.
Tương tác như đời thật
Với Selenium WebDriver, chúng ta không thể tương tác với các đồi tượng UI ẩn (hidden)/vô hiệu (disable) trong mã nguồn web. Ngược lại, với Selenium RC, chúng ta có thể làm mọi đồi tượng UI có trong mã nguồn, bất kể đồi tượng UI đó nó như thế nào trên UI. Điều này thực sự không tốt cho việc kiểm thử phần mềm vì nó bỏ qua các lỗi UI có thể có. Hơn nữa, trong đời thực, chúng ta không thể tương tác với các đồi tượng UI ẩn/vô hiệu.
Giao diện lập trình ứng dụng API – Application Programming Interface
Các APIs mà Selenium WebDriver cung cấp trong thư viện đơn giản hơn so với Selenium RC. Ví dụ như, với Selenium WebDriver, chúng ta chỉ có click; còn với Selenium RC, chúng ta có click, mouseDown, or mouseDownAt. Quá phức tạp phải không? Hơn nữa, khi sử dụng Selenium RC, chúng ta xác định hành động trước rối mới đền đối tượng UI (làm gì trên đối tượng nào); ngược lại, với Selenium WebDriver, chúng ta xác định đối tượng UI trước rồi mới nói đến làm gì trên nó (với đối tượng này chúng ta sẽ làm gì).
Bên cạnh đó, Selenium WebDriver không phải không có điểm yếu. Thứ mà mình không thích nhất của Selenium WebDriver đó là mã nguồn của nó không chạy trên Selenium Grid được. Cho nên, khi muốn thực thi test case với Selenium WebDriver trên nhiều trình duyệt khác nhau, chúng ta phải cấu hình bằng tay. Buồn là vậy….