paint-brush
Cách tận dụng tối đa Playwright sau khi cập nhật mới nhấttừ tác giả@brightdata
1,378 lượt đọc
1,378 lượt đọc

Cách tận dụng tối đa Playwright sau khi cập nhật mới nhất

từ tác giả Bright Data5m2023/12/17
Read on Terminal Reader

dài quá đọc không nổi

Đoán xem cái gì? Microsoft vừa tung ra phiên bản Playwright mới như kim đồng hồ! Việc cập nhật các bản sửa lỗi và thay đổi API có thể giống như một công việc toàn thời gian và việc bỏ lỡ các tính năng thú vị chỉ trong tích tắc. Nhưng đừng lo lắng, chúng tôi luôn hỗ trợ bạn! Chúng tôi ở đây để giúp bạn luôn cập nhật, tìm hiểu một số thủ thuật mới và khiến đồng nghiệp phải kinh ngạc với những kỹ năng xuất sắc của bạn! Sẵn sàng để đi sâu vào? Đi nào!
featured image - Cách tận dụng tối đa Playwright sau khi cập nhật mới nhất
Bright Data HackerNoon profile picture
0-item
1-item
2-item
3-item
4-item


Đoán xem cái gì? Microsoft vừa tung ra phiên bảnPlaywright mới như kim đồng hồ! Việc cập nhật các bản sửa lỗi và thay đổi API có thể giống như một công việc toàn thời gian và việc bỏ lỡ các tính năng thú vị chỉ trong tích tắc. Nhưng đừng lo lắng; Đã có chúng tôi hỗ trợ cho bạn!


Hãy tham gia cùng chúng tôi trong cuộc hành trình qua các bản cập nhật mới nhất của Nhà viết kịch. Chúng tôi ở đây để giúp bạn luôn cập nhật, tìm hiểu một số thủ thuật mới và khiến đồng nghiệp phải kinh ngạc với những kỹ năng xuất sắc của bạn! Sẵn sàng để đi sâu vào? Đi nào!


Cập nhật mới nhất của Nhà viết kịch (v1.04)

Nếu bạn muốn có cái nhìn trực tiếp về các bản cập nhật mới nhất của Playwright thông qua một số ví dụ tuyệt vời, hãy truy cập Kênh YouTube của Playwright và xem video hàng tháng “Có gì mới trong Playwright”:

Đã đến lúc khám phá các tính năng mới nhất được giới thiệu trong Playwright và xem cách tận dụng tối đa chúng 🔍

API mới

  • Trường FirefoxUserPrefs đã được thêm vào đối số đối tượng tùy options của browserType.launchPersistentContext(userDataDir, options) . Phương thức đó khởi chạy một trình duyệt sử dụng bộ lưu trữ liên tục có tại userDataDir và trả về phiên bản ngữ cảnh của trình duyệt. firefoxUserPrefs `là một đối tượng chứa các tùy chọn của người dùng Firefox như được chỉ định tại about:config .
  • trường reason được thêm vào đối số đối tượng options của các phương thức page.close(options) , browserContext.close(options)browser.close(options) . reason là một chuỗi chứa thông báo lỗi được báo cáo bởi tất cả các hoạt động bị gián đoạn do lệnh gọi close() .


Trong khi firefoxUserPrefs phục vụ riêng cho người dùng Firefox cần cấu hình tùy chỉnh, trường reason lại mang mục đích chung hơn nhiều. Sử dụng nó như trong đoạn trích dưới đây:


 await browser.close({ reason: "Scraping process completed!" })


Giờ đây, tất cả các hoạt động đang chờ xử lý bị gián đoạn bởi browser.close() sẽ gây ra lỗi JavaScript với thông báo “Quá trình quét đã hoàn tất!”


Làm thế nào để sử dụng tính năng này? Hãy tưởng tượng trang mục tiêu của bạn đang thực hiện một nhiệm vụ quan trọng—giả sử đang chờ truy xuất một số dữ liệu. Đột nhiên, một lỗi không mong muốn xuất hiện và bạn phải đối mặt với việc phải đóng trình duyệt một cách nhẹ nhàng.


Nếu không có reason , bạn sẽ không biết liệu tài nguyên cho tác vụ đang thực hiện đã được giải phóng hay chưa và tại sao hoạt động lại bị gián đoạn. Không biết chuyện gì đang xảy ra là điều không tốt, đặc biệt là khi bạn được giao nhiệm vụ kiểm tra lý do xảy ra lỗi trong nhật ký của tập lệnh quét web tự động. Đó là lúc trường "lý do" xuất hiện để giải cứu bạn, giúp bạn tiết kiệm được nhiều ngày điều tra vất vả.


Tuyệt vời, phần giới thiệu API này giúp việc gỡ lỗi dễ dàng hơn rất nhiều! 🚀

Chức năng mới cho Công cụ tạo thử nghiệm

Công cụ Playwright Test Generator , được thiết kế để tự động tạo các bài kiểm tra khi bạn thực hiện các hành động trong trình duyệt, hiện cung cấp các nút sau:


  • Xác nhận mức độ hiển thị : Xác minh rằng phần tử đã chọn hiển thị bằng cách tạo lệnh expect(locator).toBeVisible() .
  • Xác nhận văn bản : Đảm bảo rằng phần tử HTML đã chọn chứa văn bản cụ thể thông qua lệnh expect(locator).toContainText()
  • Giá trị khẳng định : Kiểm tra xem phần tử chọn có giá trị cụ thể hay không bằng cách thêm lệnh expect(locator).toHaveValue() vào thử nghiệm của bạn.


Hãy hình dung thế này : bạn đang thực hiện một nhiệm vụ phức tạp, chẳng hạn như xây dựng trình thu thập dữ liệu web cho một trang web động . Giả sử bạn cần đảm bảo rằng một số thành phần trên trang hiển thị và chứa văn bản hoặc giá trị cụ thể. Điều đó sẽ liên quan đến một số logic phức tạp 👎. Nhưng hãy chờ đợi—nhờ bản cập nhật mới này, tất cả chỉ gói gọn trong vài cú nhấp chuột trong công cụ Test Generator!


Xem hoạt động của tính năng mới này trong ảnh GIF sau:


Công cụ tạo PlaywrightTest


Sự tương tác của Trình tạo thử nghiệm đó sẽ tạo ra bài kiểm tra TypeScript sau cho bạn:


 import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await expect(page.getByRole('banner')).toContainText('Get started'); });

✨ Thật huyền diệu phải không nào? ✨

Phiên bản trình duyệt được cập nhật

Theo truyền thống lớn về các bản cập nhật lớn của Playwright, dòng trình duyệt được hỗ trợ đã được cập nhật với các phiên bản mới hơn:

  • Crom 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4


Nhưng đó không phải là tất cả! Phiên bản hiện tại của Playwright cũng đã tỏ ra xuất sắc trước các kênh ổn định sau:

  • Google Chrome 119

  • Microsoft Edge 119


Những thay đổi nhỏ khác

  • Các phương thức download.path()download.createReadStream() hiện phát ra lỗi khi thao tác tải xuống không thành công hoặc bị hủy.

  • Hình ảnh docker Playwright hiện đi kèm với Node.js v20.


Bạn không muốn bỏ lỡ bất kỳ thông tin cập nhật mới nào? Hãy theo dõi trang Ghi chú phát hành của nhà viết kịch!

Cách cập nhật nhà viết kịch

Bây giờ, chắc hẳn bạn đang nghĩ, "Làm cách nào tôi có thể có được những bổ sung mới tuyệt vời đó?" Chà, bằng cách cập nhật Playwright lên phiên bản mới nhất, bạn ạ!


Chỉ cần kích hoạt lệnh dưới đây:

npm install @playwright/test@latest

Và quên nâng cấp các phiên bản trình duyệt bằng:

npx playwright install


Thì đấy! Bạn đã sẵn sàng để sở hữu những bản cập nhật mới nhất của Nhà viết kịch!

Nhà viết kịch mới, những vấn đề cũ…

Cho dù phiên bản Playwright của bạn có cập nhật đến đâu thì hầu hết các trang web vẫn có thể phát hiện và chặn các tập lệnh tự động của bạn. Nhưng làm sao điều đó có thể xảy ra được? Chà, các trình duyệt không có đầu do các thư viện như Playwright kiểm soát liên quan đến các cấu hình và cài đặt đặc biệt được các giải pháp chống bot coi là cờ đỏ. Hậu quả? Các khối ngay lập tức hoặc sự xuất hiện không mong muốn của CAPTCHA và các chướng ngại vật khó chịu khác .


Bây giờ, bạn có thể đang nghĩ, “Tôi không thể điều chỉnh cài đặt trình duyệt của mình để tránh điều này sao?”


Đừng nhanh thế, nhóc! Đó không phải là một ý tưởng hay vì ít nhất ba lý do thuyết phục:


  1. Đó là một trò chơi mèo vờn chuột không bao giờ kết thúc—các biện pháp chống bot ngày càng phát triển, khiến cách giải quyết hôm nay trở thành tin tức cũ vào ngày mai.
  2. Ngay cả với cấu hình trình duyệt mượt mà nhất, các yêu cầu quá mức từ cùng một IP vẫn có thể khiến bạn nhận được những cái nhìn nghi ngờ từ trang web mục tiêu.
  3. Các tương tác của người dùng như gửi biểu mẫu có thể yêu cầu giải CAPTCHA, đây không phải là cách tự động hóa dễ dàng!


Vấn đề không nằm ở chính thư viện tự động hóa trình duyệt (Playwright thật tuyệt vời! 🤘), mà là ở trình duyệt được kiểm soát. Giải pháp sẽ là một trình duyệt có khả năng tùy biến cao:


  • Chạy ở chế độ đứng đầu giống như một trình duyệt bình thường để tránh bị phát hiện bot.
  • Có thể dễ dàng mở rộng quy mô lên đám mây để giúp bạn tiết kiệm thời gian và tiền bạc trong việc quản lý cơ sở hạ tầng.
  • Cung cấp các IP luân phiên được hỗ trợ bởi một trong những mạng proxy rộng nhất và đáng tin cậy nhất trên thị trường
  • Có thể tự động quản lý việc giải CAPTCHA, lấy dấu vân tay của trình duyệt, tùy chỉnh cookie và tiêu đề cũng như tự động thử lại cho bạn để đạt hiệu quả tối đa.
  • Tích hợp với các thư viện tự động hóa trình duyệt phổ biến nhất, chẳng hạn như Playwright, Selenium và Puppeteer


Dù bạn có tin hay không, đó không phải là một ảo ảnh xa vời. Đó là sự thật và chính xác là nội dung của giải pháp Scraping Browser của Bright Data !


suy nghĩ cuối cùng

Nhà viết kịch là ngôi sao nhạc rock của các thư viện tự động hóa trình duyệt và giống như ông già Noel phát quà vào đêm Giáng sinh, Microsoft phát hành bản cập nhật mới quan trọng hàng tháng. Tại đây, bạn đã biết cách tận dụng tối đa các bản cập nhật mới nhất của Playwright, nhưng hãy thành thật mà nói, chúng sẽ không khiến bạn vô hình một cách kỳ diệu trước các trang web có công nghệ phát hiện bot tiên tiến.


Hãy né tránh viên đạn đó bằng giải pháp Scraping Browser từ Bright Data và tham gia sứ mệnh của chúng tôi để biến Internet trở thành nơi công cộng cho mọi người, ở mọi nơi, thậm chí thông qua các tập lệnh tự động!


Cho đến lần sau, hãy tiếp tục khám phá Web một cách tự do!