0

[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
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí