Selenium là gì? WebDriver, Grid, IDE và Các trường hợp sử dụng
Trình duyệt Scraping không cần scrap cung cấp cơ sở hạ tầng trình duyệt được quản lý cho tự động hóa web và quy trình làm việc dữ liệu cần thực thi đám mây vượt xa một máy chủ trình duyệt cục bộ.
TL;DR
- Selenium là một dự án tự động hóa trình duyệt bao quát. Các thành phần chính của nó là WebDriver cho điều khiển dựa trên mã, Grid cho thực thi phân tán và IDE cho việc ghi và phát lại nội dung.
- WebDriver là giao diện lập trình lõi. Các liên kết ngôn ngữ Selenium gửi các lệnh tiêu chuẩn hóa thông qua các triển khai riêng của trình duyệt được duy trì với sự tham gia của nhà cung cấp trình duyệt.
- Selenium nhấn mạnh khả năng tương thích rộng. Hệ sinh thái của nó bao gồm các trình duyệt chính, một số ngôn ngữ lập trình, dịch vụ thực thi từ xa, khung kiểm tra và bộ phần mềm doanh nghiệp lâu dài.
- Grid giải quyết phân bổ, chứ không phải thiết kế kiểm tra. Việc phân phối các phiên trên các máy gia tăng khả năng bao quát và dung lượng, nhưng thời gian chờ, bộ định vị, cách ly và khẳng định vẫn xác định chất lượng kiểm tra.
- Selenium không hạn chế cho các ứng dụng cũ. Nó vẫn hữu ích khi các tiêu chuẩn đa trình duyệt, lựa chọn ngôn ngữ, cơ sở hạ tầng hiện có hoặc khả năng tương tác của trình duyệt từ xa dẫn dắt quyết định.
Selenium là một gia đình dự án, không phải một chương trình thực thi duy nhất
Selenium tập hợp các công cụ và thư viện để tự động hóa trình duyệt web. WebDriver là API hướng tới mã mà hầu hết các nhà phát triển sử dụng. Selenium Grid định tuyến các phiên tới các nút trình duyệt trên các máy hoặc nền tảng khác nhau. Selenium IDE ghi lại và phát các hành động của trình duyệt thông qua một tiện ích mở rộng và có thể giúp với việc học hoặc các quy trình nhẹ. Các liên kết ngôn ngữ kết nối mã kiểm tra với mô hình WebDriver, trong khi các trình chạy kiểm tra bên ngoài cung cấp cấu trúc bộ, khẳng định, báo cáo và các cấu kiện ứng dụng cụ thể.
Tổng quan dự án Selenium chính thức mô tả Selenium như một dự án bao quát và giải thích các vai trò của WebDriver, IDE và Grid. Sự tách biệt này là quan trọng khi đánh giá Selenium. Một nhóm có thể sử dụng WebDriver tại chỗ mà không cần Grid, gửi các phiên WebDriver tới một nhà cung cấp đám mây, hoặc sử dụng Grid với một số khung kiểm tra. “Sử dụng Selenium” do đó nói rất ít về kiến trúc hoàn chỉnh cho đến khi các liên kết ngôn ngữ, driver trình duyệt, trình chạy, máy chủ phiên và con đường báo cáo được đặt tên.
WebDriver Kết Nối Mã Kiểm Tra với Các Triển Khai Trình Duyệt
Một bài kiểm tra Selenium gọi một liên kết ngôn ngữ như Java, Python, JavaScript, Ruby hoặc C#. Liên kết đó tạo một phiên WebDriver với các khả năng được yêu cầu, sau đó gửi các lệnh cho điều hướng, tìm kiếm phần tử, nhập liệu, thực thi kịch bản, cửa sổ, cookie, ảnh chụp màn hình và các thao tác trình duyệt khác. Một triển khai driver dịch các thao tác giao thức đó thành hành vi trình duyệt. Thực thi cục bộ bắt đầu gần quá trình kiểm tra, trong khi thực thi từ xa gửi cùng một mô hình phiên tới Grid hoặc một điểm cuối WebDriver khác.
Đặc tả W3C WebDriver định nghĩa WebDriver như một giao thức dây không phụ thuộc vào nền tảng và ngôn ngữ cho điều khiển trình duyệt từ xa. Các lệnh dựa trên tiêu chuẩn làm cho các triển khai trình duyệt và khách hàng tương thích, trong khi các khả năng mở rộng đáp ứng nhu cầu cụ thể của nhà cung cấp. Giao thức không quy định khung kiểm tra xung quanh nó. Các khẳng định, nạp phụ thuộc, đối tượng trang, thiết lập dữ liệu và báo cáo kết quả đến từ hệ sinh thái ngôn ngữ xung quanh hoặc kiến trúc dự án.
- Các liên kết. Các API ngôn ngữ cụ thể biến mã dự án thành thông điệp phiên và lệnh WebDriver.
- Driver. Một triển khai cụ thể của trình duyệt nhận các lệnh và điều khiển trình duyệt tương ứng.
- Phiên. Các khả năng thương lượng trình duyệt, nền tảng, nhắc nhở, proxy và cài đặt mở rộng cho một chu kỳ sống tự động hóa.
- Các phần tử và hành động. Các lệnh xác định các phần tử DOM và gửi các thao tác bàn phím, con trỏ, bánh xe, điều hướng, cửa sổ hoặc kịch bản.
- Điểm cuối từ xa. Grid hoặc dịch vụ lưu trữ phân bổ phiên yêu cầu tới một môi trường trình duyệt có sẵn.
Grid Phân Phối Các Phiên Trình Duyệt Trên Các Môi Trường
Selenium Grid chấp nhận các yêu cầu WebDriver từ xa và ghép nối chúng với các nút đáp ứng các khả năng được yêu cầu. Điều này cho phép một bộ bao phủ các kết hợp trình duyệt và hệ điều hành không được cài đặt trên trình chạy kiểm tra. Nó cũng cho phép các phiên đồng thời, tùy thuộc vào dung lượng nút và khả năng của ứng dụng để xử lý các kiểm tra đồng thời. Grid giúp tập trung hóa việc phân bổ trình duyệt, nhưng dữ liệu kiểm tra, tính ổn định của môi trường, bí mật, tác phẩm và tải hệ thống mục tiêu vẫn là trách nhiệm của nhóm.
Tài liệu Selenium Grid chính thức giải thích rằng Grid chạy các bài kiểm tra trên các máy và nền tảng khác nhau trong khi đầu vào vẫn ở phía cục bộ. Một thiết kế Grid hữu ích xem mỗi phiên như có thể tiêu hủy và quan sát được. Các nút nên có các phiên bản trình duyệt được kiểm soát, nhật ký nên xác định môi trường được chỉ định, và các bài kiểm tra nên tránh phụ thuộc vào các tệp hoặc trạng thái để lại bởi một phiên trước đó. Thực thi từ xa phóng đại sự ghép nối ẩn vì thứ tự và phân bổ máy ít đáng đoán hơn.
Các Thành Phần Selenium Giải Quyết Các Giai Đoạn Khác Nhau
Một kiến trúc Selenium rõ ràng hơn khi mỗi thành phần có một công việc và ngăn xếp kiểm tra xung quanh được đặt tên rõ ràng.
| Thành phần | Trách nhiệm chính |
|---|---|
| Selenium WebDriver | Cung cấp các liên kết ngôn ngữ và giao diện dựa trên tiêu chuẩn để điều khiển các phiên trình duyệt. |
| Driver trình duyệt | Thực hiện các thao tác WebDriver cho một trình duyệt cụ thể và ủy quyền cho trình duyệt đó. |
| Selenium Grid | Định tuyến các yêu cầu phiên từ xa tới các nút trình duyệt có sẵn phù hợp với các khả năng được yêu cầu. |
| Selenium IDE | Ghi lại và phát lại các hành động của trình duyệt thông qua một tiện ích mở rộng cho việc học, lập mẫu và các quy trình đã chọn. |
| Trình chạy kiểm tra | Khám phá các bài kiểm tra, cung cấp các phép kiểm tra và các cấu hình, báo cáo kết quả, và thường được cung cấp bởi hệ sinh thái ngôn ngữ. |
| Lớp trang hoặc miền | Bao bọc các bộ định vị và hoạt động cụ thể của ứng dụng để các bài kiểm tra thể hiện hành vi kinh doanh thay vì các lệnh thô. |
Nơi Selenium vẫn là lựa chọn thực tế
Selenium mạnh nhất khi tính tương thích, tích hợp ngôn ngữ, hoặc một hệ sinh thái WebDriver hiện có quan trọng hơn một trình chạy kiểm tra tất cả trong một.
Bộ phần mềm doanh nghiệp rộng lớn
Các hệ thống kiểm tra Java, Python, C#, Ruby hoặc JavaScript lâu đời có thể tích hợp WebDriver với các trình chạy, báo cáo, tiêm phụ thuộc và thư viện nội bộ đã thiết lập.
Xác thực đa trình duyệt
Mô hình phiên dựa trên tiêu chuẩn hỗ trợ các triển khai trình duyệt chính và các môi trường từ xa trên các tổ hợp trình duyệt và hệ điều hành.
Thực thi phân tán
Mạng lưới hoặc dịch vụ WebDriver được lưu trữ có thể phân bổ nhiều phiên độc lập mà không buộc quy trình kiểm tra phải lưu trữ mỗi trình duyệt cục bộ.
Công cụ hướng theo tiêu chuẩn
Các sản phẩm tự động hóa có thể xây dựng xung quanh giao thức WebDriver thay vì gắn kết mọi quy trình làm việc trực tiếp với giao diện gỡ lỗi của một nhà cung cấp trình duyệt.
Selenium yêu cầu lựa chọn rõ ràng về Thời gian chờ và Công cụ
Selenium cung cấp kiểm soát trình duyệt thay vì một kiến trúc kiểm tra quy định. Các nhóm chọn trình chạy, thư viện phép kiểm tra, cấu hình, báo cáo, quản lý phụ thuộc và quy ước thiết kế. Sự linh hoạt đó hỗ trợ nhiều hệ sinh thái nhưng làm tăng số lượng quyết định. Đồng bộ hóa cũng yêu cầu kỷ luật: sự hiện diện của phần tử không đảm bảo khả năng nhìn thấy hoặc tương tác, và sự kiện tải trang có thể không có nghĩa là ứng dụng một trang đã đạt được trạng thái mà bài kiểm tra cần.
hướng dẫn bắt đầu chính thức cho Selenium WebDriver giải thích trình điều khiển cụ thể cho trình duyệt và giao diện không phụ thuộc ngôn ngữ liên quan đến thiết lập Selenium. Công cụ Selenium hiện tại có thể quản lý nhiều thiết lập trình điều khiển, nhưng các điểm cuối từ xa, chính sách trình duyệt, hình ảnh container và mạng doanh nghiệp vẫn có thể thay đổi môi trường. Ghi lại các khả năng thực tế được trả về bởi phiên và xác nhận kết quả ứng dụng thay vì giả định nhãn trình duyệt được yêu cầu chứng minh môi trường hoàn chỉnh.
Một Đánh giá Kiến trúc Selenium
Coi Selenium như một tập hợp các phần tương tác. Xem lại từng ranh giới trước khi mở rộng phạm vi trình duyệt hoặc bổ sung khả năng từ xa.
- Đặt tên cho ngăn xếp hoàn chỉnh. Ghi lại liên kết ngôn ngữ, trình chạy kiểm tra, thư viện phép kiểm, quản lý trình điều khiển, phiên bản trình duyệt, mạng lưới hoặc điểm cuối từ xa, và hệ thống sản phẩm. Điều này biến một lựa chọn khung mơ hồ thành một thiết kế có thể hoạt động.
- Xác định quyền sở hữu khả năng. Giữ các khả năng trình duyệt, nền tảng, proxy, tải về, chứng chỉ và khả năng mở rộng nhà cung cấp trong cấu hình theo phiên bản. So sánh các khả năng được yêu cầu và được trả về khi chẩn đoán sự trôi dạt của môi trường.
- Sử dụng thời gian chờ dựa trên điều kiện. Chờ trạng thái cụ thể cần nhìn thấy, bật, URL, khung hoặc ứng dụng bởi bước tiếp theo. Đừng để các độ trễ đồng hồ cố định trở thành phương pháp đồng bộ chính.
- Bao bọc hành vi trang. Các đối tượng trang hoặc dịch vụ miền nên công bố các hoạt động và kết quả có ý nghĩa, đồng thời giữ các bộ định vị thô và các lệnh WebDriver gần với trang mà chúng mô tả.
- Tách biệt dữ liệu và phiên kiểm tra. Các bài kiểm tra song song không nên chia sẻ tài khoản, bản ghi có thể biến đổi, tải xuống, hoặc hồ sơ trình duyệt trừ khi việc phối hợp là chủ đề rõ ràng của bài kiểm tra.
- Theo dõi phân bổ từ xa. Ghi lại các định danh phiên, môi trường nút, phiên bản trình duyệt, nhật ký, ảnh chụp màn hình, và các sản phẩm liên quan khác để một sự cố từ xa có thể được tái hiện.
- Mở rộng từ nhu cầu đo lường. Thêm các nút và công nhân song song sau khi đo lường thời gian khởi động trình duyệt, thời gian kiểm tra, khả năng mục tiêu, và giới hạn dịch vụ chia sẻ. Nhiều phiên có thể làm quá tải ứng dụng đang được kiểm tra.
- Lập kế hoạch phát triển giao thức. Theo dõi hỗ trợ WebDriver cổ điển và hỗ trợ WebDriver BiDi trong các trình duyệt và các liên kết mà bộ của bạn sử dụng. Chấp nhận các tính năng mới dựa trên sự kiện khi mô đun yêu cầu được thực hiện từ đầu đến cuối.
Nơi Scrapeless Vừa Vặn Xung Quanh Quy Trình Làm Việc của Selenium
Trình duyệt Scrapeless Scraping là hạ tầng trình duyệt được quản lý cho tự động hóa và các nhiệm vụ dữ liệu web động. Trong một tổ chức tập trung vào Selenium, đánh giá nó như một phần của lớp lưu trữ trình duyệt và mạng, và xác minh bề mặt kết nối hiện tại hỗ trợ so với khách hàng và các hoạt động chính xác cần thiết cho dự án.
Đừng giả định rằng hỗ trợ cho một giao thức trình duyệt đồng nghĩa với hỗ trợ đầy đủ cho mọi lệnh, khả năng hoặc sản phẩm của Selenium. Chạy một bài kiểm tra tương thích có giới hạn trước. Tổng quan sản phẩm trình duyệt Scrapeless Scraping, Tài liệu bắt đầu của trình duyệt Scrapeless Scraping, và Giá Scrapeless trước khi chọn một mô hình hoạt động.
Kết luận: Selenium là một hệ sinh thái tự động hóa tương tác
Selenium kết hợp WebDriver, Grid, IDE, các liên kết ngôn ngữ và một hệ sinh thái lớn xung quanh.
Chọn Selenium khi kiểm soát trình duyệt chéo dựa trên tiêu chuẩn, lựa chọn ngôn ngữ, chuyên môn hiện có, hoặc hạ tầng WebDriver từ xa là yêu cầu hàng đầu.
Sẵn sàng để Xem Xét Hạ Tầng Trình Duyệt Của Bạn?
Tạo một tài khoản Scrapeless và so sánh việc thực thi trình duyệt được quản lý với môi trường cục bộ hoặc môi trường Grid-hosted mà bạn hiện đang sử dụng trong quy trình tự động hóa của mình.
Bắt Đầu Miễn Phí →Câu hỏi thường gặp
Selenium có giống với WebDriver không?
Không. Selenium là một dự án umbrella, trong khi WebDriver là thành phần kiểm soát trình duyệt dựa trên mã chính của nó và một tập hợp các giao thức W3C liên quan. Selenium cũng bao gồm Grid cho việc thực thi phân tán và IDE cho quy trình ghi và phát lại, cùng với các liên kết ngôn ngữ và hạ tầng dự án.
Selenium có bao gồm một trình chạy kiểm tra không?
Selenium cung cấp các API tự động hóa trình duyệt nhưng thường dựa vào một trình chạy từ hệ sinh thái ngôn ngữ đã chọn, chẳng hạn như khuôn khổ kiểm tra Java, Python, JavaScript hoặc C#. Trình chạy cung cấp khám phá, khẳng định, cấu hình, báo cáo và vòng đời bộ quanh các phiên WebDriver.
Selenium Grid được sử dụng để làm gì?
Selenium Grid chuyển hướng các yêu cầu phiên WebDriver từ xa đến các nút trình duyệt phù hợp với khả năng yêu cầu. Nó giúp các nhóm hoạt động trên các máy khác nhau, trình duyệt và nền tảng và có thể tăng công suất song song. Nó không khắc phục dữ liệu kiểm tra chia sẻ, thời gian chờ không ổn định, bộ định vị yếu hoặc các khẳng định bị thiếu.
Selenium có hỗ trợ các trình duyệt chính không?
Có. Selenium WebDriver được thiết kế cho các triển khai trình duyệt chính thông qua các trình điều khiển cụ thể cho từng trình duyệt và một giao thức dựa trên tiêu chuẩn. Xác thực phiên bản trình duyệt chính xác, hệ điều hành, hành vi trình điều khiển hoặc trình quản lý tích hợp, và khả năng dịch vụ từ xa cần thiết cho dự án.
Selenium chỉ dành cho kiểm tra tự động không?
Kiểm tra là cách sử dụng chính, nhưng WebDriver cũng có thể hỗ trợ giám sát, công cụ trình duyệt và các tác vụ tự động được phép. Đối với việc thu thập dữ liệu công khai, hãy chọn một trình duyệt chỉ khi cần thiết việc hiển thị hoặc tương tác và giữ phạm vi truy cập, lưu lượng, thông tin xác thực, và thời gian giữ dữ liệu dưới sự kiểm soát rõ ràng.