+1

[Playwright Interview question #4]: Sự khác biệt giữa page.click() và page.locator().click()?

Câu hỏi phỏng vấn #4: Sự khác biệt giữa page.click()page.locator().click() là gì?

Trả lời mẫu:

1. page.click() (Legacy method - không khuyến khích):

await page.click('#submit-button');

  • Tìm element và click ngay lập tức
  • Không có auto-retry mechanism
  • Có thể gây flaky tests nếu element chưa ready

2. page.locator().click() (Recommended):

await page.locator('#submit-button').click();

  • Tạo Locator object có thể reuse
  • Auto-retry cho đến khi element clickable
  • Chờ element visible, stable và enabled
  • Hỗ trợ chaining actions

So sánh chi tiết:


// Legacy approach

await page.waitForSelector('#button');
await page.click('#button');

// Modern approach (tự động chờ)
wait page.locator('#button').click();

💡Tips:

  • Luôn sử dụng page.locator() cho code mới
  • Locator có thể lưu vào biến và reuse nhiều lần
  • Auto-waiting giúp giảm flaky tests đáng kể
  • Locator hỗ trợ nhiều methods khác: fill(), check(), hover()...

Lời Kết

Playwright đang trở thành một trong những automation frameworks phổ biến nhất cho web testing. Thông qua series này, hy vọng bạn sẽ:

  • Nắm vững kiến thức từ cơ bản đến nâng cao
  • Tự tin trong các buổi phỏng vấn
  • Áp dụng hiệu quả vào dự án thực tế
  • Trở thành một phần của cộng đồng Playwright Việt Nam năng động

📚 Bắt đầu hành trình của bạn với: Bài 1: Playwright vs Selenium

💬 Có câu hỏi? Tham gia group Facebook của chúng mình!

Theo dõi series để không bỏ lỡ bài viết mới!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.