WebDriver là gì?
Trình duyệt Tác nhân Scrapeless cung cấp khả năng thực thi trình duyệt được quản lý thông qua các giao diện được tài liệu hóa cho các khách hàng tự động hóa được hỗ trợ.
WebDriver là một giao diện điều khiển từ xa tiêu chuẩn hóa cho các trình duyệt web. Một chương trình bên ngoài trình duyệt sử dụng WebDriver để yêu cầu điều hướng, tìm phần tử, thực hiện tương tác và kiểm tra trạng thái trình duyệt. Giao thức này độc lập với ngôn ngữ: các thư viện phía khách khác nhau có thể biểu đạt các hành động trên trình duyệt trong khi dựa trên một mô hình dùng chung cho cách những hành động đó được truyền đạt và thực thi.
WebDriver thường được gặp thông qua Selenium, nhưng các thuật ngữ này ám chỉ những tầng khác nhau. Selenium cung cấp các thư viện tự động hóa trình duyệt và hạ tầng liên quan. WebDriver định nghĩa một hợp đồng điều khiển trình duyệt. Một triển khai đặc thù cho từng trình duyệt sẽ xử lý phía từ xa của hợp đồng đó cho môi trường trình duyệt đang được điều khiển. Việc phân biệt các tầng này giúp việc thiết lập và chẩn đoán trở nên chính xác hơn.
Cách một lệnh WebDriver đến được trình duyệt
Một client WebDriver gửi một lệnh đến đầu xa điều khiển trình duyệt. Đặc tả điều khiển từ xa WebDriver định nghĩa mô hình lệnh, các khả năng, phiên làm việc và các thao tác trình duyệt.
Ứng dụng khách có thể chạy bên cạnh trình duyệt hoặc kết nối thông qua hạ tầng từ xa. Lựa chọn triển khai đó thay đổi nơi trình duyệt hoạt động, nhưng không làm thay đổi nhu cầu cơ bản về một hợp đồng lệnh tương thích. Một máy chủ có thể truy cập được không nhất thiết là một máy chủ WebDriver, và một URL điều khiển trình duyệt không thể hoán đổi cho mọi điểm cuối tự động hóa khác.
Phản hồi thành công của một lệnh xác lập kết quả được định nghĩa bởi lệnh đó. Một thao tác điều hướng không nhất thiết xác lập rằng một biểu đồ được kết xuất phía khách hàng đã hoàn tất. Việc tìm một phần tử không xác lập rằng đó là phiên bản mong muốn nếu bộ định vị khớp với nhiều điều khiển tương tự.
Các khẳng định của ứng dụng cung cấp phần ý nghĩa còn thiếu. Hãy xác định trang, bản ghi, hoặc trạng thái hiển thị với người dùng nào phải xuất hiện sau một thao tác. Giao thức điều khiển trình duyệt; bài kiểm thử hoặc quy trình làm việc sẽ quyết định liệu sự chuyển đổi đó có hoàn thành tác vụ hay không.
Một Phiên WebDriver Là Mối Quan Hệ Điều Khiển
Một phiên WebDriver xác định một mối quan hệ điều khiển giữa môi trường máy khách và trình duyệt. Việc tạo phiên thương lượng các khả năng, và các lệnh tiếp theo hoạt động trong phạm vi phiên đã được thiết lập đó.
Các khả năng thể hiện yêu cầu và mô tả môi trường được chọn để thực thi. Chúng hữu ích để xác định trình duyệt và hành vi được hỗ trợ, nhưng chúng không đảm bảo rằng một trang web sẽ phản hồi với nội dung như mong đợi. Cùng một phiên trình duyệt có thể truy cập một trang đăng nhập, một trang kết quả trống, hoặc một ứng dụng đã được hiển thị đầy đủ.
Giữ phiên WebDriver tách biệt với việc xác thực trên trang web. Một trang web có thể duy trì trạng thái đăng nhập phía máy chủ thông qua trạng thái của trình duyệt. Kết thúc phiên tự động hóa không nhất thiết sẽ thu hồi đăng nhập đó, và một phiên tự động hóa đang hoạt động cũng không đảm bảo rằng đăng nhập trên trang web vẫn còn hiệu lực.
Quyền sở hữu phiên làm việc cần được thể hiện rõ ràng. Tạo phiên tại thời điểm bắt đầu công việc cần sử dụng phiên đó, truyền quyền điều khiển phiên qua đúng luồng công việc dự định, và kết thúc phiên khi chủ sở hữu đó hoàn thành. Việc mất tham chiếu trong mã ứng dụng khác với việc xác nhận rằng tài nguyên trình duyệt từ xa đã được giải phóng.
Bộ định vị và Tham chiếu Phần tử Có Thời gian Tồn tại Khác Nhau
Một bộ định vị mô tả cách tìm một phần tử, trong khi một tham chiếu phần tử xác định một phần tử cụ thể được tìm thấy trong một trạng thái tài liệu cụ thể. Sự khác biệt đó giải thích vì sao các tham chiếu có thể trở nên cũ (stale).
Một ứng dụng động có thể thay thế một control sau khi dữ liệu được tải. Control mới có thể có cùng giao diện và bộ chọn trong khi lại là một nút khác. Một tham chiếu đã được trả về trước đó không tự động trở thành tham chiếu đến phần tử thay thế đó.
Khi trang thay đổi, hãy đánh giá lại tài liệu hiện tại và xác định lại phần tử cần thao tác. Câu hỏi quan trọng là liệu trạng thái của ứng dụng có còn khớp với thao tác bạn sắp thực hiện hay không. Một bộ định vị (locator) từng hoạt động trước khi điều hướng có thể giờ đây khớp với một thứ khác hoặc thuộc về sai trang.
Ưu tiên các bộ chọn gắn với ý nghĩa của tác vụ. Các định danh ổn định, tên truy cập được và thuộc tính ứng dụng được định nghĩa rõ ràng thường dễ xem xét hơn so với một đường dẫn dài đi qua các vùng chứa bố cục tình cờ. Dù bạn chọn bộ chọn nào, hãy xác nhận rằng nó chọn đúng điều khiển trong các biến thể trang mà quy trình làm việc thực sự hỗ trợ.
Chờ nghĩa là kiểm tra một điều kiện liên quan
Chờ trong WebDriver có nghĩa là cho phép một điều kiện ứng dụng liên quan trở nên đúng trong một khoảng thời gian giới hạn. Các chiến lược chờ trong Selenium giải thích sự khác biệt giữa chờ ngầm định (implicit) và chờ tường minh (explicit) và cảnh báo về việc kết hợp chúng mà không hiểu rõ các tác động về thời gian của chúng.
Một điều hướng đã hoàn thành có thể xảy ra trước hoạt động script về sau. Một nút có thể tồn tại trước khi nó trở nên có thể sử dụng. Một bảng có thể hiển thị trong khi vẫn còn hiển thị các hàng giữ chỗ. Hãy chọn điều kiện mô tả hành động an toàn tiếp theo hoặc kết quả hữu ích cuối cùng.
Đối với một quy trình báo cáo, điều kiện có thể là tiêu đề báo cáo mong đợi và vùng kết quả đã hoàn thành đều có mặt. Đối với một biểu mẫu, điều kiện có thể là điều khiển đúng đã được bật và không có lớp phủ nào chặn nó. Một khoảng trễ cố định mô tả thời gian trôi qua, không phải trạng thái sẵn sàng của ứng dụng.
Một thao tác chờ thất bại cần giữ lại đủ ngữ cảnh để giải thích điều gì đã bị thiếu. Hãy ghi lại điều kiện mong đợi, danh tính trang hiện tại và một quan sát chẩn đoán có giới hạn. Điều này giúp phân biệt một bộ định vị đã thay đổi với một trang khác hoặc một trạng thái ứng dụng chưa hoàn tất.
Khung và Cửa sổ Xác định Phạm vi Áp dụng của Lệnh
Các lệnh WebDriver hoạt động trong một ngữ cảnh trình duyệt đã chọn, vì vậy việc xác định đúng cửa sổ hoặc khung là một phần của tính đúng đắn. Một phần tử bên trong tài liệu được nhúng không phải là hậu duệ thông thường trong DOM của tài liệu cha.
Mô hình HTML browsing-context mô tả các mối quan hệ giữa tài liệu, cửa sổ và nội dung lồng nhau. Một quy trình làm việc phải tuân theo các mối quan hệ đó khi chọn tài liệu mà một thao tác thuộc về.
Giả sử một ứng dụng nhúng một công cụ ước tính phí vận chuyển. Một bộ định vị trong tài liệu cha có thể tìm thấy phần tử iframe nhưng không tìm thấy các điều khiển biểu mẫu bên trong của công cụ ước tính. Hãy chọn khung mong muốn, bảo đảm rằng tài liệu của nó đã sẵn sàng, rồi sau đó tìm điều khiển bên trong tài liệu đó.
Một cửa sổ popup đưa ra một vấn đề liên quan. Cửa sổ gốc có thể vẫn mở trong khi kết quả cần thiết xuất hiện ở nơi khác. Hãy xác định cửa sổ mới bằng bằng chứng liên quan đến tác vụ, thay vì giả định rằng handle cuối cùng được API trả về luôn là handle đúng. Quay lại ngữ cảnh cha mong muốn trước khi tiếp tục làm việc ở đó.
Cookie và Phiên Ứng dụng là Trạng thái Website
Cookie có thể kết nối các yêu cầu trình duyệt với trạng thái của website, nhưng chúng không giống với một phiên WebDriver. Cơ chế HTTP state management định nghĩa cách cookie được lưu trữ và gửi trong phạm vi của chúng.
Một bài kiểm thử đã xác thực nên sử dụng một tài khoản được phê duyệt và một trạng thái khởi đầu có chủ đích. Tái sử dụng dữ liệu trình duyệt có thể hữu ích cho một yêu cầu liên tục, nhưng nó cũng có thể che giấu các phụ thuộc. Một bài kiểm thử có thể chỉ vượt qua vì một tác vụ trước đó đã chấp nhận lựa chọn đồng ý hoặc chọn một vị trí.
Tách biệt các bài kiểm thử cần trạng thái sạch với các tác vụ cố ý bảo toàn trạng thái. Ghi lại nguồn trạng thái mà không ghi log cookie hoặc thông tin xác thực. Nếu đăng nhập hết hạn trong quá trình thực hiện một quy trình, hãy báo cáo kết quả đó thay vì coi dữ liệu ứng dụng bị thiếu là một kết quả rỗng thành công.
WebDriver So với Các Giao diện Trình duyệt Khác
WebDriver là một trong số nhiều giao diện điều khiển trình duyệt, và giao diện phù hợp phụ thuộc vào phạm vi trình duyệt cần hỗ trợ và các thao tác cần thiết. WebDriver cổ điển, WebDriver BiDi và CDP có các mô hình lệnh và quan sát khác nhau.
| Câu hỏi | Cần kiểm tra gì |
|---|---|
| Cần chạy trên những trình duyệt nào? | Hỗ trợ cho trình duyệt thực tế và phần triển khai |
| Ngôn ngữ nào sẽ điều khiển chúng? | Ràng buộc phía client và các tính năng được hỗ trợ của nó |
| Có cần các sự kiện trình duyệt không? | Giao diện đã được ghi chép có khả năng xử lý sự kiện |
| Việc thực thi diễn ra ở đâu? | Vòng đời sở hữu cục bộ hoặc dịch vụ từ xa |
| Điều gì chứng minh thành công? | Các khẳng định cụ thể theo trang và việc kiểm tra đầu ra |
Đừng lựa chọn chỉ dựa trên tên của một thư viện. Một thư viện có thể phơi bày nhiều hơn một giao thức nền hoặc có các giới hạn phụ thuộc môi trường. Hãy xác nhận chính xác phương thức kết nối và thao tác thay vì dịch một ví dụ kết nối giữa các giao thức một cách suy diễn.
Lập Kế hoạch Một Quy trình WebDriver
Một quy trình WebDriver hữu ích chỉ rõ trạng thái khởi đầu, các thay đổi ngữ cảnh, các kiểm tra sẵn sàng, kết quả và việc dọn dẹp. Những chi tiết đó giúp nó dễ bảo trì bất kể nó chạy trên máy của nhà phát triển hay cơ sở hạ tầng từ xa.
Bắt đầu với một đường dẫn ứng dụng đại diện. Xác định URL ban đầu, trạng thái tài khoản, viewport và tài liệu mong đợi. Đối với mỗi tương tác, hãy xác định điều kiện trang cho phép nó và trạng thái sẽ theo sau. Điều này biến một chuỗi nhấp chuột thành một hợp đồng hành vi rõ ràng.
Xác minh dữ liệu hoặc trạng thái hiển thị thu được trước khi kết thúc phiên. Một bài kiểm thử đạt đến URL cuối cùng vẫn có thể chưa hoàn chỉnh nếu ứng dụng hiển thị lỗi. Giữ lỗi giao thức, tài nguyên không khả dụng và các khẳng định nghiệp vụ thất bại tách biệt trong kết quả công việc.
Vị trí của Scrapeless trong Quyết định
Scrapeless Agent Browser thuộc lớp thực thi trình duyệt. môi trường trình duyệt được quản lý và khả năng của Agent Browser của nó nên được đánh giá thông qua các giao diện client đã được ghi chép, thay vì giả định tồn tại một WebDriver endpoint bất kỳ.
Phần thảo luận về chẩn đoán console trình duyệt và phát lại cung cấp ngữ cảnh liên quan cho việc quan sát hành vi trang từ xa. Xem lại Scrapeless pricing khi cân nhắc thực thi được quản lý. Không có tích hợp hoặc benchmark WebDriver‑to‑Scrapeless nào được khẳng định trong định nghĩa này.
Kết luận
WebDriver cung cấp cho tự động hóa trình duyệt một mô hình điều khiển chuẩn hóa. Các quy trình làm việc đáng tin cậy vẫn phụ thuộc vào bộ định vị đặc thù ứng dụng, việc chọn ngữ cảnh, chờ đợi và các khẳng định. Hãy xác định các điều kiện đó song song với vòng đời phiên để một lệnh thành công có thể được phân biệt với một tác vụ thành công.
Đưa Các Khái niệm Trình duyệt Vào Thực tiễn
Khám phá một quy trình trình duyệt được ủy quyền với Scrapeless Agent Browser, sau đó xác nhận trạng thái trang và đầu ra mà tác vụ của bạn yêu cầu.
Đăng ký hôm nay và nhận $5 in free credit — không cần thẻ tín dụng.
Nhận $5 tín dụng của bạn →Câu hỏi thường gặp
WebDriver có giống Selenium không?
WebDriver là một giao diện điều khiển trình duyệt, trong khi Selenium là một dự án cung cấp các thư viện tự động hóa và hạ tầng. Các client Selenium có thể sử dụng WebDriver, nhưng các tên này mô tả những phần khác nhau của stack.
Phiên WebDriver có phải là phiên đăng nhập trang web không?
Một phiên WebDriver không phải là một phiên đăng nhập trang web. Cái trước định danh việc điều khiển trình duyệt; cái sau là trạng thái ứng dụng được duy trì bởi trang web và dữ liệu trình duyệt.
Tại sao một tham chiếu phần tử trở nên lỗi thời (stale)?
Một tham chiếu phần tử trở nên lỗi thời khi nó không còn định danh một phần tử được gắn trong tài liệu liên quan. Điều hướng hoặc cập nhật ứng dụng có thể thay thế các node, vì vậy hãy đánh giá lại trạng thái hiện tại và xác định lại phần tử mong muốn.
Điều hướng thành công có nghĩa là trang đã sẵn sàng không?
Điều hướng thành công không nhất thiết có nghĩa là ứng dụng đã sẵn sàng cho hành động tiếp theo. Hãy kiểm tra điều kiện cụ thể của trang khiến hành động hợp lệ hoặc đầu ra được yêu cầu đã hoàn tất.