Duyệt web không giao diện có nghĩa là sử dụng trình duyệt web mà không hiển thị giao diện đồ họa thông thường. Trình duyệt vẫn có thể tải trang, thực thi JavaScript, quản lý cookie, tương tác với các phần tử và tạo ảnh chụp màn hình. Mã điều khiển trình duyệt thay vì một người làm việc thông qua một cửa sổ hiển thị.
Thiết lập này hữu ích cho việc kiểm tra tự động, giám sát trang web, tạo ảnh chụp màn hình và các tác vụ trình duyệt lặp lại khác. Nó cũng hoạt động tốt trên các máy chủ không có màn hình máy tính để bàn.
Cửa sổ bị thiếu chỉ là một phần của quá trình thiết lập. Duyệt web không giao diện không tự động nhanh hơn, riêng tư, không trạng thái hoặc khó phát hiện hơn. Những kết quả đó phụ thuộc vào trình duyệt, trang web và cách xây dựng quy trình làm việc.
Duyệt web không giao diện là gì?
Trình duyệt không đầu là trình duyệt chạy mà không hiển thị giao diện thông thường. Duyệt web không giao diện là quá trình sử dụng trình duyệt đó để truy cập và tương tác với các trang web.
Trình duyệt vẫn thực hiện hầu hết công việc được mong đợi từ một trình duyệt thông thường. Nó tải xuống tài nguyên, phân tích HTML, áp dụng CSS, thực thi JavaScript, xây dựng DOM, lưu trữ cookie và xử lý các yêu cầu mạng. Nó có thể nhấp vào nút, hoàn thành biểu mẫu, cuộn trang và chờ nội dung xuất hiện.
Những thay đổi là cách trình duyệt được kiểm soát. Một người thường làm việc thông qua các tab, nút, menu và một trang hiển thị. Trình duyệt không có giao diện người dùng nhận hướng dẫn từ tập lệnh, công cụ dòng lệnh hoặc khung tự động hóa.
Duyệt web không giao diện là một cách để chạy Tự động hóa trình duyệt. Tự động hóa trình duyệt là khái niệm rộng hơn. Nó có thể chạy với một cửa sổ hiển thị hoặc không có một cửa sổ nào.
Không nên nhầm lẫn chế độ không đầu hiện đại với trình duyệt chỉ có văn bản. Điều đó cũng không có nghĩa là trình duyệt ngừng xử lý nội dung trực quan. Trình duyệt không có giao diện người dùng có thể tính toán bố cục trang và tạo ảnh chụp màn hình ngay cả khi không có cửa sổ trình duyệt nào xuất hiện trên màn hình.
Chrome đã thay đổi kiến trúc không đầu trong phiên bản 112. Chế độ không đầu hiện tại của nó sử dụng cơ sở mã Chrome thông thường và tạo các cửa sổ nền tảng mà không hiển thị chúng. Việc triển khai cũ hơn hiện tồn tại riêng biệt dưới dạng Headless Shell. Tài liệu không đầu của Chrome giải thích sự khác biệt hiện tại.
Trình duyệt không đầu hoạt động như thế nào?
Trình duyệt không có giao diện người dùng tuân theo quy trình tải trang chung giống như trình duyệt có giao diện người dùng. Sự khác biệt chính là lớp điều khiển.
Một quy trình công việc điển hình có năm giai đoạn.
- Trình duyệt khởi động
Tập lệnh khởi chạy Chrome, Chrome, Firefox hoặc trình duyệt được hỗ trợ khác. Quá trình này có thể chạy trên máy tính cục bộ, máy chủ xây dựng, vùng chứa hoặc cơ sở hạ tầng từ xa.
- Một công cụ tự động hóa kết nối
Chương trình điều khiển giao tiếp với trình duyệt thông qua giao thức tự động hóa. Các công cụ của Chrome thường sử dụng Giao thức DevTools của Chrome. Các quy trình công việc khác sử dụng tiêu chuẩn WebDriver.
- Trình duyệt tải trang
Trình duyệt yêu cầu trang và tài nguyên của nó. Nó xử lý HTML, CSS, JavaScript, phông chữ, hình ảnh, cookie và lưu trữ. Các ứng dụng phía máy khách có thể tiếp tục tải dữ liệu sau khi tài liệu đầu tiên đến.
- Kịch bản thực hiện các hành động
Công cụ tự động hóa có thể tìm thấy các phần tử, nhấp vào nút, nhập văn bản, cuộn, chờ yêu cầu, mở trang mới hoặc tải xuống tệp. Nó cũng có thể kiểm tra DOM và lắng nghe các sự kiện của trình duyệt.
- Quy trình làm việc ghi lại kết quả
Kết quả cuối cùng có thể là báo cáo thử nghiệm, ảnh chụp màn hình, PDF, tệp đã tải xuống, giá trị DOM, dấu vết hiệu suất hoặc nhật ký mạng. Sau đó, quy trình làm việc sẽ đóng trình duyệt hoặc giữ phiên sẵn sàng cho công việc sau này.
Các công cụ như Playwright, Puppeteer và Selenium nằm giữa tập lệnh và trình duyệt. Họ cung cấp các API thực tế và xử lý phần lớn giao tiếp giao thức cấp thấp.
Chrome là một trình duyệt. Playwright và Puppeteer là những công cụ điều khiển trình duyệt. Việc coi chúng như cùng một loại phần mềm sẽ dẫn đến việc so sánh công cụ kém hiệu quả và tài liệu kỹ thuật không rõ ràng.
Trình duyệt không đầu và có đầu
Trình duyệt đứng đầu hiển thị cửa sổ trình duyệt quen thuộc. Một trình duyệt không đầu thì không. Cả hai đều có thể được điều khiển bằng các công cụ tự động hóa.
| Khu vực | Trình duyệt không đầu | Trình duyệt có tiêu đề |
|---|---|---|
| Cửa sổ hiển thị | Không có cửa sổ trình duyệt bình thường | Cửa sổ trình duyệt hiển thị |
| Phương pháp điều khiển chính | Công cụ mã hoặc tự động hóa | Đầu vào của con người hoặc tự động hóa |
| Môi trường chung | Máy chủ, container và hệ thống CI | Máy tính để bàn và máy phát triển |
| Phù hợp nhất | Nhiệm vụ theo lịch trình và lặp lại | Công việc gỡ lỗi, đánh giá và tương tác |
| Quan sát trực quan | Sử dụng ảnh chụp màn hình, dấu vết hoặc bản ghi | Có thể xem trực tiếp |
| Sự can thiệp của con người | Ít thuận tiện hơn | Dễ dàng hơn |
| Xử lý trang | Tải và xử lý nội dung web | Tải và xử lý nội dung web |
| Sử dụng tài nguyên | Có thể giảm chi phí giao diện | Bao gồm giao diện hiển thị |
| Điều tra thất bại | Phụ thuộc nhiều vào bằng chứng đã lưu | Thường dễ dàng hơn để kiểm tra trực tiếp |
Chế độ không đầu là lựa chọn thiết thực cho các tác vụ ổn định cần chạy mà không có sự giám sát. Chế độ có giao diện đồ họa thường tốt hơn khi quy trình công việc đang được phát triển.
Việc xem trình duyệt khiến vấn đề về thời gian và nhấp chuột không chính xác trở nên dễ hiểu hơn. Sau khi quy trình công việc đã đáng tin cậy, việc chuyển nó sang chế độ không có giao diện người dùng có thể đơn giản hóa quá trình thực thi theo lịch trình.
Nhiều nhóm sử dụng cả hai chế độ: chạy tác vụ thường ngày không có giao diện đồ họa và tái hiện lỗi với giao diện đồ họa hiển thị. Cách này đáng tin cậy hơn việc coi một chế độ là giải pháp cho mọi tác vụ trên trình duyệt.
Duyệt web không giao diện so với các khái niệm liên quan
Một số thuật ngữ trình duyệt mô tả các phần khác nhau của hệ thống tự động hóa. Chúng không nên được sử dụng để thay thế cho nhau.
| Ý tưởng | Những gì nó mô tả | Nó khác với Duyệt web không giao diện như thế nào |
|---|---|---|
| Tự động hóa trình duyệt | Kiểm soát theo chương trình các hành động của trình duyệt | Có thể chạy ở chế độ không có giao diện đồ họa (headless) hoặc có giao diện đồ họa |
| Trình duyệt đám mây | Một trình duyệt chạy trên cơ sở hạ tầng từ xa | Nó có thể không có đầu hoặc cung cấp chế độ xem trực tiếp rõ ràng |
| Máy khách HTTP | Phần mềm gửi yêu cầu mạng | Nó thường không cung cấp môi trường trình duyệt hoàn chỉnh |
| Cách ly trình duyệt | Tách việc thực thi web khỏi thiết bị cục bộ hoặc phiên khác | Nó mô tả một ranh giới cách ly hơn là khả năng hiển thị giao diện |
| Trình duyệt ảo | Trình duyệt chạy trong môi trường ảo hoặc từ xa | Không nhất thiết phải chạy ở chế độ không có giao diện đồ họa (headless) |
| Web scraping | Thu thập thông tin từ các trang web | Trình duyệt không có đầu chỉ là một công cụ quét khả thi |
Trình duyệt đám mây cho thấy lý do tại sao những khác biệt này lại quan trọng. Đám mây mô tả nơi trình duyệt chạy. Headless mô tả liệu giao diện bình thường của nó có được hiển thị hay không. Trình duyệt từ xa vẫn có thể truyền phát một trang hiển thị tới người dùng.
Sự khác biệt tương tự cũng áp dụng cho Cách ly trình duyệt. Cách ly kiểm soát nơi nội dung web chạy hoặc cách phân tách dữ liệu trình duyệt. Việc xóa cửa sổ hiển thị không tạo ra ranh giới bảo mật đó.
Một máy khách HTTP cơ bản cũng khác. Nó có thể yêu cầu một tài liệu với ít chi phí hơn nhiều so với một trình duyệt đầy đủ. Điều đó làm cho nó trở thành một lựa chọn tốt hơn cho nhiều trang tĩnh và API được ghi lại. Trình duyệt không có giao diện người dùng trở nên hữu ích khi tác vụ cần thực thi JavaScript, lưu trữ trình duyệt, tương tác trang hoặc hành vi dành riêng cho trình duyệt.
Chế độ không đầu không quyết định liệu dữ liệu trình duyệt có tồn tại hay không sau khi quá trình đóng. Các quy tắc Quản lý phiên của quy trình làm việc xác định thời điểm trạng thái đăng nhập được tạo, sử dụng lại, làm mới hoặc xóa. Bối cảnh tạm thời có thể loại bỏ dữ liệu của nó sau mỗi lần chạy. Một bối cảnh liên tục có thể giữ lại nó cho các phiên sau.
Khi một số ngữ cảnh chạy cùng lúc, Cách ly cookie sẽ giữ cho dữ liệu đăng nhập được lưu trữ của chúng không bị trộn lẫn. Sự tách biệt đó xuất phát từ bối cảnh trình duyệt hoặc thiết kế hồ sơ, không phải từ chính chế độ không đầu.
Trình duyệt không đầu được sử dụng để làm gì?
Các trình duyệt không có giao diện hữu ích nhất khi một tác vụ cần hoạt động thực sự của trình duyệt nhưng không cần một người theo dõi từng bước.
Kiểm tra web tự động
Thử nghiệm là một trong những cách sử dụng rõ ràng nhất cho Duyệt web không giao diện. Bài kiểm tra có thể mở một trang, điền biểu mẫu, gửi biểu mẫu và kiểm tra kết quả.
Các thử nghiệm không đầu phù hợp một cách tự nhiên với các hệ thống tích hợp liên tục. Chúng có thể chạy sau mỗi lần thay đổi mã mà không cần mở cửa sổ trình duyệt trên máy tính của nhà phát triển.
Các ví dụ phổ biến bao gồm:
- Kiểm tra chức năng
- Kiểm tra hồi quy
- Thử nghiệm từ đầu đến cuối
- Kiểm tra trên nhiều trình duyệt
- Kiểm tra biểu mẫu và điều hướng
- Kiểm tra lỗi JavaScript
Thử nghiệm không đầu không loại bỏ nhu cầu thử nghiệm bằng đầu. Một quy trình làm việc có thể trôi qua một cách không cần thiết và vẫn gặp sự cố về hình ảnh hoặc tương tác. Hành trình quan trọng của người dùng phải được kiểm tra ở cả hai chế độ.
Ảnh chụp màn hình và tạo PDF
Trình duyệt không có đầu có thể tạo ảnh chụp màn hình mà không hiển thị trang trên màn hình. Điều này rất hữu ích cho việc kiểm tra hồi quy trực quan, xem trước liên kết, báo cáo, lưu trữ và theo dõi trang.
Nó cũng có thể chuyển đổi các trang web thành PDF. Trình duyệt xử lý bố cục trang trước khi tạo tệp. Kiểu in, phông chữ, kích thước trang và trạng thái tải vẫn ảnh hưởng đến kết quả.
Trường hợp sử dụng này bộc lộ một sự hiểu lầm phổ biến. Trình duyệt không đầu xử lý nội dung trực quan. Đơn giản là chúng không hiển thị nội dung đó thông qua cửa sổ trình duyệt thông thường.
Giám sát trang web
Tác vụ giám sát có thể tải một trang theo lịch trình và kiểm tra xem nội dung mong đợi có xuất hiện hay không. Nó cũng có thể đo thời gian trang, ghi lại lỗi bảng điều khiển, kiểm tra các yêu cầu mạng không thành công và lưu bằng chứng khi có gì đó thay đổi.
Điều này mang lại kết quả rõ ràng hơn yêu cầu thời gian hoạt động cơ bản khi trang phụ thuộc vào JavaScript hoặc yêu cầu một số hành động trước khi nội dung quan trọng xuất hiện.
Một quy trình giám sát tốt sẽ kiểm tra một kết quả cụ thể. Nó không nên chỉ dựa vào trạng thái HTTP cuối cùng. Một trang có thể trả về phản hồi thành công trong khi ứng dụng chính của nó bị hỏng.
Kết xuất và thu thập dữ liệu bằng JavaScript
Nhiều trang web cung cấp một tài liệu HTML nhỏ và tải nội dung hữu ích sau đó bằng JavaScript. Một yêu cầu đơn giản chỉ có thể nhận được shell trang đầu tiên.
Trình duyệt không có đầu có thể đợi ứng dụng chạy. Nó có thể tương tác với các menu, phân trang, cửa sổ phương thức và nội dung xuất hiện sau khi cuộn.
Điều đó không làm cho trình duyệt trở thành lựa chọn đầu tiên cho mọi tác vụ thu thập dữ liệu. API được ghi lại thường ổn định hơn. Yêu cầu HTTP trực tiếp thường rẻ hơn đối với các trang công khai tĩnh. Một trình duyệt hoàn chỉnh sẽ có ý nghĩa khi việc thực thi trình duyệt thực sự được yêu cầu.
Mọi quy trình thu thập dữ liệu đều phải tôn trọng quyền truy cập, điều khoản trang web, yêu cầu về quyền riêng tư và luật hiện hành.
Kiểm tra SEO và hiển thị
Trình duyệt không có giao diện người dùng có thể giúp nhóm SEO kiểm tra các trang phụ thuộc vào kết xuất phía máy khách. Quy trình làm việc có thể so sánh HTML ban đầu với DOM được hiển thị, kiểm tra thẻ chuẩn, kiểm tra dữ liệu có cấu trúc và xác nhận rằng các liên kết nội bộ xuất hiện sau khi chạy JavaScript.
Nó cũng có thể chụp các trang ở các kích thước khung nhìn khác nhau và xác định nội dung bị thiếu.
Đây là một công cụ chẩn đoán. Nó không tái tạo mọi phần của trình thu thập thông tin của công cụ tìm kiếm. Các công cụ tìm kiếm sử dụng hệ thống tìm nạp, kết xuất, lập lịch và lập chỉ mục của riêng họ.
Nhiệm vụ đại lý AI
Tác nhân AI có thể sử dụng trình duyệt làm lớp thực thi. Tác nhân quyết định hành động cần thực hiện trong khi trình duyệt mở trang và thực hiện hành động.
Trình duyệt có thể chạy không cần thiết khi không có người cần xem. Nó có thể chuyển sang chế độ xem hiển thị khi quy trình làm việc yêu cầu xem xét hoặc nhập thủ công.
Tác nhân AI và trình duyệt không đầu có vai trò khác nhau. Các đại lý xử lý việc lập kế hoạch và quyết định. Trình duyệt xử lý việc thực thi web.
Lợi ích của Duyệt web không giao diện
Lợi ích chính là hoạt động. Một tác vụ trình duyệt có thể chạy mà không cần ai đó mở cửa sổ.
Điều này làm cho Duyệt web không giao diện trở nên hữu ích cho:
- Công việc theo lịch trình
- Đường ống thử nghiệm tự động
- Tác vụ trình duyệt phía máy chủ
- Ảnh chụp màn hình và báo cáo có thể lặp lại
- Phiên trình duyệt song song
- Hệ thống giám sát dài hạn
Việc xóa giao diện hiển thị có thể giảm một số chi phí. Nó cũng có thể giúp triển khai dễ dàng hơn trên các máy không có môi trường máy tính để bàn.
Lợi ích hiệu suất không nên được phóng đại. Trình duyệt không có đầu vẫn tải xuống tài nguyên, thực thi tập lệnh, tính toán bố cục và duy trì trạng thái trình duyệt. Một trang phức tạp có thể sử dụng CPU và bộ nhớ đáng kể ở cả hai chế độ.
Lợi ích lớn hơn thường đến từ chính việc tự động hóa. Một quy trình làm việc nhất quán có thể chạy vào thời điểm cần thiết, ghi lại kết quả và báo cáo lỗi mà không cần đợi ai đó lặp lại các bước tương tự.
Hạn chế và thách thức
Duyệt web không giao diện sẽ xóa cửa sổ hiển thị. Nó không loại bỏ những khó khăn thông thường của Tự động hóa trình duyệt.
Phản hồi trực tiếp hạn chế
Một hành động thất bại sẽ khó hiểu hơn khi không ai có thể xem trang. Tập lệnh có thể đã nhấp sai thành phần, tải màn hình đăng nhập không mong muốn hoặc chờ nội dung không bao giờ xuất hiện.
Ảnh chụp màn hình, dấu vết, thông báo trên bảng điều khiển và nhật ký mạng là rất cần thiết. Nếu không có chúng, kết quả duy nhất có thể là thời gian chờ không hữu ích.
Sự khác biệt về trình duyệt và khung
Chế độ không đầu và có đầu đã gần gũi hơn trước đây, nhưng không nên cho rằng chúng hoạt động giống hệt nhau trong mọi trường hợp.
Phiên bản trình duyệt thay đổi. Các khung tự động hóa cũng cập nhật các bản dựng trình duyệt, mặc định và các tính năng được hỗ trợ. Một quy trình công việc có thể bắt đầu bị lỗi sau khi cập nhật ngay cả khi mã của chính nó không thay đổi.
Hỗ trợ phương tiện, tiện ích mở rộng trình duyệt, chính sách doanh nghiệp, phông chữ và phần phụ thuộc của hệ điều hành cũng có thể ảnh hưởng đến kết quả.
Các trang và bộ chọn không ổn định
Các trang web thay đổi mà không có cảnh báo. Các nút di chuyển, thay đổi nhãn, thay đổi trình tự tải và luồng đăng nhập sẽ đạt được các bước bổ sung.
Bộ chọn dựa trên cấu trúc trang dễ vỡ có xu hướng bị lỗi trước tiên. Sự chậm trễ cố định cũng gây ra vấn đề. Họ chờ đợi quá lâu trên những trang nhanh và không đủ lâu trên những trang chậm.
Tự động hóa đáng tin cậy chờ đợi trạng thái trang có ý nghĩa. Nó cũng xác nhận rằng mỗi hành động quan trọng đều tạo ra kết quả như mong đợi.
CPU, bộ nhớ và tính đồng thời
Trình duyệt không có đầu vẫn là một quá trình trình duyệt. Chạy một phiên có thể đơn giản. Việc chạy hàng trăm yêu cầu giới hạn tài nguyên, hàng đợi, thời gian chờ, khôi phục sự cố và dọn dẹp.
Các trang có thể rò rỉ bộ nhớ hoặc để công việc chạy nền. Một tập lệnh bị lỗi cũng có thể khiến các tiến trình của trình duyệt vẫn mở sau khi công việc kết thúc.
Tính đồng thời nên được kiểm tra với khối lượng công việc thực tế. Số phiên cố định không nói lên điều gì nếu không biết các trang, phiên bản trình duyệt, dung lượng máy chủ và độ dài của từng tác vụ.
Nhiệm vụ phụ thuộc vào con người và thiết bị
Một số nhiệm vụ là ứng cử viên kém để thực hiện hoàn toàn không có đầu.
Họ có thể yêu cầu:
- Sự phán xét của con người
- Phê duyệt thủ công
- Quyền truy cập vào máy ảnh hoặc micrô
- Thông tin xác thực được hỗ trợ bằng phần cứng
- Tương tác kéo và thả phức tạp
- Hành vi ứng dụng di động gốc
- Điều tra trực quan khi có sự cố
Một quy trình làm việc kết hợp thường thực tế hơn. Các bước thông thường sẽ tự động chạy, trong khi các bước bất thường hoặc nhạy cảm đang chờ xem xét.
Trang web có thể phát hiện trình duyệt không có giao diện người dùng không?
Các trang web có thể xác định Tự động hóa trình duyệt hoặc hành vi bất thường của trình duyệt. Chế độ không đầu có thể đóng góp vào đánh giá đó, nhưng nó không phải là quyết định toàn bộ.
thuộc tính navigator.webdriver tiêu chuẩn có thể cho một trang biết rằng trình duyệt đang được kiểm soát tự động hóa. Một trang web cũng có thể kiểm tra tiêu đề HTTP, API trình duyệt, kết quả hiển thị, thông tin mạng, thời gian yêu cầu và hành vi phiên.
Ví dụ: phiên bản trình duyệt được báo cáo có thể không đồng ý với các API có sẵn. Hệ điều hành được xác nhận quyền sở hữu có thể không phù hợp với phông chữ hoặc thông tin đồ họa mà trình duyệt hiển thị. Các hành động lặp đi lặp lại cũng có thể tuân theo một khuôn mẫu khác với cách sử dụng thông thường.
Các trang web kết hợp những chi tiết này trong hệ thống Phát hiện bot. Các hệ thống như vậy thường xem xét các tín hiệu mạng, trình duyệt, tài khoản và hành vi cùng nhau. Một giá trị hiếm khi giải thích được toàn bộ kết quả.
Việc thay đổi tiêu đề Tác nhân người dùng sẽ không thay đổi phần còn lại của trình duyệt. Cơ bản Giả mạo tác nhân người dùng có thể tạo ra sự không nhất quán khi xác nhận quyền sở hữu của trình duyệt mới không khớp với môi trường cơ bản.
Kiểm tra đồ họa thêm một nguồn ngữ cảnh khác. Dấu vân tay WebGL có thể tiết lộ chi tiết về môi trường kết xuất. Nó không chứng minh rằng trình duyệt không có đầu, nhưng một trang web có thể so sánh nó với các tuyên bố của trình duyệt khác.
Chế độ không đầu không tự động được phát hiện nhiều hơn. Nó cũng không tự động riêng tư. Kết quả phụ thuộc vào bản dựng trình duyệt, cài đặt khởi chạy, hoạt động của trang và hệ thống phát hiện của trang web.
Khi nào bạn nên sử dụng trình duyệt không đầu?
Sử dụng trình duyệt không có đầu khi tác vụ cần hoạt động của trình duyệt và không cần cửa sổ hiển thị.
| Tình huống | Lựa chọn thực tế |
|---|---|
| Kiểm tra CI lặp lại | Không đầu |
| Phát triển quy trình làm việc sớm | đánh đầu |
| Gỡ lỗi trực quan | đánh đầu |
| Ảnh chụp màn hình theo lịch trình | Không đầu |
| Trang HTML tĩnh | Yêu cầu HTTP đầu tiên |
| API tài liệu có sẵn | Sử dụng API trước tiên |
| Nội dung phụ thuộc vào JavaScript | Không đầu có thể giúp ích |
| Cần có sự chấp thuận của con người | Đánh đầu hoặc lai |
| Tác vụ trong môi trường vận hành thực tế đôi khi gặp lỗi | Không cần đầu với nhật ký và dự phòng thủ công |
| Ứng dụng di động gốc | Thiết bị di động thực hoặc ảo |
Trước khi chọn chế độ không đầu, hãy hỏi năm câu hỏi:
- Tác vụ có cần trình duyệt JavaScript đầy đủ không?
- Có ai cần xem hoặc tiếp quản buổi học không?
- Cookie hoặc trạng thái đăng nhập có nên tồn tại giữa các lần chạy không?
- Bằng chứng nào sẽ có sau thất bại?
- Thời gian chạy có thể xử lý CPU, bộ nhớ và hoạt động đồng thời dự kiến không?
Đối với quy trình làm việc mới, chế độ có giao diện đồ họa thường là điểm khởi đầu tốt hơn. Nó sớm bộc lộ những giả định không chính xác. Chế độ không đầu sẽ trở nên hữu ích khi các bước và cách xử lý lỗi được hiểu rõ.
Các trình duyệt không đầu phổ biến và các công cụ tự động hóa
Trình duyệt chạy trang. Công cụ tự động hóa sẽ cho nó biết phải làm gì.
| Dụng cụ | Kiểu | Bảo hiểm | Phù hợp chung |
|---|---|---|---|
| Chrome hoặc Crom không đầu | Thời gian chạy trình duyệt | crom | Tự động hóa và thử nghiệm chung |
| Nhà viết kịch | Khung tự động hóa | Crom, Firefox và WebKit | Kiểm tra và tự động hóa trên nhiều trình duyệt |
| Người múa rối | Thư viện tự động hóa | Tập trung vào Chrome và Chrome | Tự động hóa Chrome, ảnh chụp màn hình và tệp PDF |
| Selen | Khung tự động hóa | Nhiều họ trình duyệt | Đã thiết lập bộ thử nghiệm trên nhiều trình duyệt |
Các bài kiểm tra của nhà viết kịch chạy không ngừng nghỉ theo mặc định. Cửa sổ trình duyệt có thể được kích hoạt để gỡ lỗi. Tài liệu trình duyệt của nó cũng giải thích sự khác biệt giữa các bản dựng Chrome và chế độ không đầu Chrome mới hơn.
Puppeteer cũng khởi chạy ở chế độ không đầu theo mặc định. Nó có thể sử dụng chế độ không đầu của Chrome hiện tại hoặc Headless Shell riêng biệt, tùy thuộc vào cấu hình. Hướng dẫn chế độ không đầu của Người múa rối ghi lại lựa chọn đó.
Selenium có lịch sử lâu đời trên các dòng trình duyệt và ngôn ngữ lập trình. Nó sử dụng trình điều khiển dành riêng cho trình duyệt và giao diện tương thích với WebDriver.
Không có công cụ duy nhất nào là tốt nhất cho mọi dự án. Phạm vi trình duyệt, hỗ trợ ngôn ngữ, mã kiểm tra hiện có, công cụ gỡ lỗi, môi trường triển khai và nhu cầu bảo trì quan trọng hơn xếp hạng chung.
Các phương pháp hay nhất để có Duyệt web không giao diện đáng tin cậy
Quy trình làm việc không đầu đáng tin cậy phụ thuộc vào bằng chứng rõ ràng và khả năng phục hồi có thể dự đoán được.
- Phát triển ở chế độ đứng đầu trước tiên
Xem quá trình chạy quy trình làm việc ban đầu. Xác nhận rằng mỗi hành động nhắm mục tiêu đến phần tử mong đợi và tạo ra trạng thái trang mong đợi.
- Chờ tình hình thực tế
Đợi một phần tử, phản hồi, URL hoặc trạng thái ứng dụng. Tránh sử dụng độ trễ cố định làm phương pháp đồng bộ hóa chính.
- Sử dụng bộ chọn ổn định
Ưu tiên các vai trò, nhãn, ID kiểm tra có thể truy cập hoặc các mã định danh có chủ ý khác. Tránh các bộ chọn bị ràng buộc với vị trí DOM dễ vỡ.
- Ghi lại bằng chứng thất bại hữu ích
Lưu ảnh chụp màn hình, dấu vết, nhật ký trình duyệt, lỗi mạng và URL hiện tại. Chỉ một dấu vết ngăn xếp hiếm khi là đủ.
- Đặt thời gian chờ rõ ràng
Sử dụng các giới hạn riêng biệt cho việc điều hướng, hành động trên trang và hoàn thành nhiệm vụ. Điều này ngăn trang bị chặn sử dụng một công nhân vô thời hạn.
- Xác thực các kết quả quan trọng
Đừng cho rằng một cú nhấp chuột đã thành công. Kiểm tra trang kết quả, tệp đã tải xuống, giá trị đã lưu hoặc trạng thái ứng dụng.
- Kiểm soát việc sử dụng tài nguyên
Hạn chế hoạt động đồng thời và giám sát CPU, bộ nhớ, thời lượng phiên và sự cố trình duyệt. Kiểm tra giới hạn với các trang đại diện.
- Đóng tài nguyên trình duyệt
Các trang, ngữ cảnh và quy trình trình duyệt sẽ đóng ngay cả sau khi xảy ra lỗi. Việc dọn dẹp thuộc về con đường thất bại cũng như con đường thành công.
- Theo dõi các phiên bản trình duyệt
Ghi lại các phiên bản khung trình duyệt và tự động hóa được sử dụng bởi quy trình làm việc. Kiểm tra các bản cập nhật trước khi áp dụng chúng vào các công việc sản xuất quan trọng.
- Giữ dự phòng cho con người
Luồng công việc phải dừng một cách an toàn khi đạt đến thông tin đăng nhập, bước phê duyệt hoặc hành động nhạy cảm không mong muốn. Tự động hóa không nên đoán trước các quyết định có tác động lớn.
Bài học chính
Trình duyệt không có đầu chạy mà không hiển thị giao diện bình thường. Nó vẫn tải các trang web, thực thi JavaScript, xử lý bố cục, lưu trữ dữ liệu trình duyệt và tương tác với các thành phần trang.
Duyệt web không giao diện là một chế độ Tự động hóa trình duyệt. Nó hoạt động tốt để kiểm tra, giám sát, chụp ảnh màn hình, PDF và các tác vụ trình duyệt theo lịch trình.
Nó không tự động làm cho quy trình làm việc nhanh hơn, không trạng thái, riêng tư hoặc không thể phát hiện được. Kết quả đáng tin cậy vẫn phụ thuộc vào việc chờ âm thanh, xác thực, ghi nhật ký, quản lý tài nguyên và lựa chọn công cụ cẩn thận.
Câu hỏi thường gặp về Duyệt web không giao diện
Duyệt web không giao diện nói một cách đơn giản là gì?
Duyệt web không giao diện là việc sử dụng trình duyệt không có cửa sổ trình duyệt hiển thị. Một tập lệnh điều khiển việc điều hướng và các hành động trên trang. Trình duyệt vẫn xử lý các trang web và có thể trả về dữ liệu, ảnh chụp màn hình, tệp PDF, nhật ký hoặc kết quả kiểm tra.
Trình duyệt không có đầu có thực thi JavaScript không?
Đúng. Các trình duyệt không đầu hiện đại thực thi JavaScript và hỗ trợ các ứng dụng web động. Họ có thể đợi nội dung phía máy khách, phản hồi các sự kiện trên trang và tương tác với các thành phần được tạo sau lần tải tài liệu HTML đầu tiên.
Trình duyệt không có đầu có hiển thị các trang web không?
Đúng. Nó phân tích HTML, áp dụng CSS, tính toán bố cục và xử lý nội dung trực quan. Kết quả không được hiển thị trong cửa sổ bình thường. Trình duyệt vẫn có thể tạo ảnh chụp màn hình và tệp PDF từ trang được hiển thị.
Trình duyệt không có đầu có nhanh hơn trình duyệt thông thường không?
Nó có thể nhanh hơn đối với một số khối lượng công việc vì nó không hiển thị giao diện bình thường. Sự khác biệt không được đảm bảo. Độ phức tạp của trang, yêu cầu mạng, JavaScript, hình ảnh, cài đặt trình duyệt và dung lượng hệ thống thường có tác động lớn hơn.
Sự khác biệt giữa chế độ không đầu và có đầu là gì?
Chế độ không đầu chạy mà không hiển thị cửa sổ trình duyệt. Chế độ tiêu đề hiển thị cửa sổ. Chế độ không đầu phù hợp với các nhiệm vụ không cần giám sát. Chế độ đánh đầu dễ quan sát, gỡ lỗi và điều khiển thủ công hơn.
Trình duyệt không có đầu có thể chụp ảnh màn hình không?
Đúng. Trình duyệt có thể chụp một trang ngay cả khi không nhìn thấy cửa sổ nào. Chất lượng ảnh chụp màn hình vẫn phụ thuộc vào kích thước khung nhìn, phông chữ, trạng thái tải, hình động và bố cục trang.
Các trang web có thể phát hiện trình duyệt không có giao diện người dùng không?
Một số trang web có thể xác định các tín hiệu tự động hóa hoặc hành vi bất thường của trình duyệt. Chế độ không đầu có thể là một trong nhiều tín hiệu. Việc phát hiện cũng có thể xem xét các tiêu đề, API trình duyệt, đầu ra đồ họa, thông tin mạng, thời gian và hành vi phiên.
Trình duyệt không có đầu có lưu cookie không?
Nó có thể. Việc lưu trữ cookie phụ thuộc vào ngữ cảnh trình duyệt hoặc cấu hình được quy trình làm việc sử dụng. Bối cảnh tạm thời có thể loại bỏ cookie của nó sau khi đóng. Một bối cảnh liên tục có thể giữ lại chúng cho các phiên sau.
Trình duyệt không có giao diện người dùng có giống như Web scraping không?
KHÔNG. Web scraping là nhiệm vụ thu thập thông tin từ các trang web. Trình duyệt không đầu là một công cụ có thể thực hiện nhiệm vụ đó. Các trang tĩnh và API được ghi lại thường cần các phương pháp đơn giản hơn.
Duyệt web không giao diện có hợp pháp không?
Duyệt web không giao diện là một phương pháp kỹ thuật nên tính hợp pháp của nó phụ thuộc vào cách sử dụng. Quy trình làm việc phải tuân theo quyền truy cập, điều khoản trang web, quy tắc bảo mật, quyền dữ liệu và luật áp dụng cho tác vụ.

VN
