Cộng đồng tự động hóa trình duyệt đang chứng kiến một cuộc tranh luận sôi nổi về sự đánh đổi giữa việc sử dụng Chrome DevTools Protocol ( CDP ) thô so với các framework đã được thiết lập như Playwright và Puppeteer . Cuộc thảo luận này trở nên gay gắt hơn khi các công ty tự động hóa trình duyệt AI ngày càng từ bỏ các abstraction cấp cao để chuyển sang kiểm soát trình duyệt trực tiếp.
![]() |
---|
Sơ đồ khái niệm minh họa mối quan hệ giữa các thành phần tự động hóa trình duyệt khác nhau như Chrome, CDP và Playwright |
Cuộc di chuyển framework lớn
Một số công ty AI trình duyệt gần đây đã chuyển từ Playwright sang các implementation CDP thô, với lý do về hiệu suất và các vấn đề kiểm soát. Sự thay đổi này đại diện cho một xu hướng rộng lớn hơn, nơi các công ty sẵn sàng hy sinh sự tiện lợi để đổi lấy tốc độ và độ chính xác. Một công ty đã báo cáo đạt được cải thiện hiệu suất gấp 5 lần trong việc trích xuất element sau khi từ bỏ hoàn toàn Playwright , mặc dù điều này đi kèm với chi phí phải xây dựng lại các khả năng tự động hóa trình duyệt cơ bản từ đầu.
Việc di chuyển không chỉ là về tốc độ. Các công ty đang nhận thấy rằng lớp abstraction của Playwright che khuất các chi tiết trình duyệt quan trọng cần thiết cho các tác vụ tự động hóa AI phức tạp. Hỗ trợ cross-origin iframe , phát hiện event listener chi tiết và quản lý trạng thái element chính xác trở nên khó khăn khi làm việc thông qua nhiều lớp abstraction .
So sánh hiệu suất
- CDP thô: thời gian khứ hồi khoảng 100 microsecond ở môi trường local
- Trích xuất element: nhanh hơn 5 lần so với Playwright (theo báo cáo của một công ty)
- Chụp ảnh: khoảng 60ms thông qua CDP
- Snapshot trang: 40-500ms tùy thuộc vào độ phức tạp
Các giải pháp thay thế dựa trên extension đạt được sức hút
Một phát triển thú vị trong cộng đồng liên quan đến việc chuyển đổi các công cụ tự động hóa truyền thống để chạy như các Chrome extension . Cách tiếp cận này mang lại những lợi thế độc đáo, bao gồm quyền truy cập vào 3,5 tỷ cài đặt Chrome và khả năng hoạt động trong các phiên trình duyệt hiện có của người dùng với tất cả thông tin đăng nhập còn nguyên vẹn. Các extension có thể tránh nhiều cơ chế phát hiện bot vì chúng hoạt động gần với các tương tác người dùng hợp pháp hơn.
Tuy nhiên, tự động hóa dựa trên extension đối mặt với những hạn chế đáng kể. Chúng không thể tự động hóa một số trang web kiểm tra các sự kiện người dùng đáng tin cậy, gặp khó khăn với việc chụp ảnh màn hình toàn trang và đối mặt với thách thức phân phối thông qua các chính sách Chrome Web Store . Các hạn chế manifest v3 đã làm phức tạp thêm việc phát triển extension , buộc các nhà phát triển phải tìm các giải pháp thay thế sáng tạo.
Thống kê Tự động hóa Chrome Extension
- 3,5 tỷ lượt cài đặt Chrome desktop trên toàn thế giới
- Phương pháp extension chạy "cực kỳ nhanh" do gần với trình duyệt
- Hạn chế: Không thể tự động hóa các trang web kiểm tra sự kiện
isTrusted
- Không thể chụp ảnh màn hình toàn trang mà không có giải pháp thay thế
- Các hạn chế của Manifest v3 giới hạn một số khả năng tự động hóa nhất định
Di sản Selenium nổi lên trở lại
Một tình tiết thú vị xuất hiện khi người tạo ra Selenium ban đầu tham gia vào cuộc thảo luận, cung cấp bối cảnh lịch sử mà nhiều người đã bỏ qua. Xu hướng của cộng đồng chỉ tập trung vào các công cụ hiện đại như Playwright và Puppeteer đã vô tình xóa bỏ lịch sử phong phú của tự động hóa trình duyệt từ đầu những năm 2000. Góc nhìn lịch sử này làm nổi bật cách ngành công nghiệp có xu hướng lặp lại các thách thức và giải pháp tương tự.
Thời gian là một vòng tròn phẳng... ngày xưa, hầu hết các dev chỉ quan tâm đến một trình duyệt -- internet explorer . sau đó trong một khoảng thời gian dài, khả năng tương thích đa trình duyệt được đánh giá cao. giờ đây, hầu hết các dev chỉ quan tâm đến một trình duyệt -- google chrome .
Dòng thời gian Tự động hóa Trình duyệt
- 2005-2017: Kỷ nguyên PhantomJS (headless WebKit)
- 2011: Chrome remote debugging được giới thiệu
- 2013: WebKit Remote Debugging Protocol v1
- 2017: Headless Chrome và Puppeteer ra mắt
- 2018: WebDriver trở thành tiêu chuẩn W3C
- 2020: Playwright 1.0 được phát hành
- 2023-2024: Hỗ trợ WebDriver BiDi được bổ sung
![]() |
---|
Khám phá sự chuyển đổi từ Playwright sang CDP trong các công cụ tự động hóa trình duyệt và bối cảnh lịch sử xung quanh những thay đổi này |
Đánh đổi giữa hiệu suất và khả năng bảo trì
Cuộc tranh luận cốt lõi tập trung vào việc liệu những cải thiện hiệu suất từ CDP thô có biện minh cho sự phức tạp gia tăng và gánh nặng bảo trì hay không. Những người ủng hộ lập luận rằng thời gian round-trip 100 microsecond của CDP và quyền truy cập trực tiếp vào các thành phần nội bộ của trình duyệt làm cho nó trở nên lý tưởng cho các tác vụ tự động hóa tần suất cao. Những người chỉ trích lo lắng về việc phát minh lại những bánh xe đã được kiểm tra kỹ lưỡng và nỗ lực kỹ thuật đáng kể cần thiết để xử lý quản lý vòng đời trình duyệt, khôi phục sự cố và điều hướng cross-frame .
Các công ty sử dụng CDP thô báo cáo những thách thức đáng kể với việc xử lý sự cố tab , race condition và quản lý trạng thái trên nhiều browser target . Đây chính xác là những vấn đề mà các framework như Playwright được thiết kế để giải quyết, khiến một số người đặt câu hỏi liệu những lợi ích về hiệu suất có đáng với chi phí kỹ thuật hay không.
Mối lo ngại về sự độc quyền của Chrome
Một căng thẳng tiềm ẩn trong những cuộc thảo luận này liên quan đến sự phụ thuộc ngày càng tăng vào các công nghệ đặc trưng của Chrome . Trong khi CDP cung cấp khả năng tự động hóa mạnh mẽ, nó chủ yếu là một tính năng của Chrome / Chromium . Firefox đã deprecated hỗ trợ CDP để ủng hộ WebDriver BiDi , nhưng cái sau chưa đủ tính năng cho các tác vụ tự động hóa đòi hỏi cao.
Cách tiếp cận tập trung vào Chrome này phản ánh các mô hình lịch sử nơi công cụ phát triển tập trung xung quanh các trình duyệt thống trị, có khả năng củng cố sự độc quyền thị trường. Tuy nhiên, các cân nhắc thực tế thường ghi đè các mối quan tâm về ý thức hệ khi các công ty cần các giải pháp tự động hóa đáng tin cậy ngay hôm nay thay vì chờ đợi các tiêu chuẩn đa trình duyệt trưởng thành.
Bối cảnh tự động hóa trình duyệt tiếp tục phát triển nhanh chóng, không có người chiến thắng rõ ràng nào xuất hiện giữa các implementation CDP thô và các framework đã được thiết lập. Sự lựa chọn ngày càng phụ thuộc vào các trường hợp sử dụng cụ thể, yêu cầu hiệu suất và tài nguyên kỹ thuật có sẵn để xử lý sự phức tạp của kiểm soát trình duyệt trực tiếp.
Tham khảo: Closer to the Metal: Leaving Playwright for CDP
![]() |
---|
Hướng dẫn sử dụng Chrome DevTools Protocol , cân nhắc lợi ích so với những nhược điểm tiềm ẩn trong bối cảnh tự động hóa rộng lớn hơn |