Vọc Vạch Playwright

[Playwright tip] Giới thiệu Repo hay: AI Locators

Phong Do Phong Do · 05/03/2025 · 4 phút đọc

Bạn đã bao giờ gặp tình huống: test fail do locator update chưa? Hôm nay, Better Bytes Academy giới thiệu đến bạn một repo rất hay: ai-locators, giúp bạn “nói chuyện” với webpage và tìm kiếm mọi thứ chỉ bằng ngôn ngữ tự nhiên! Sẽ không còn tình trạng fail do locator bị update nữa.

Công cụ được phát triển bởi team Lila (https://github.com/lila-team/lila)

AI Locators là gì?

Đây là bộ công cụ siêu mạnh sử dụng AI và LLM (Large Language Model) để giúp bạn tìm kiếm các phần tử trên webpage chỉ bằng cách mô tả chúng – không cần những dòng XPath dài dòng hay selector phức tạp nữa! Hỗ trợ cả Python và Node.js, tích hợp mượt mà với Playwright.

Ví dụ nhé:

  • Thay vì: page.locator("//div[contains(@class, 'header')]//button[contains(@class, 'login') and not(@disabled) and contains(text(), 'Sign In')]") 😵
  • Bạn chỉ cần: page.locator("ai=the login button in the header that says Sign In") 😍

Tại sao nên dùng AI Locators?

  • Không cần bảo trì: Quên chuyện cập nhật selector mỗi khi webpage thay đổi đi!
  • Tích hợp sẵn với Playwright: Dễ dàng, tiện lợi, như một phần của workflow của bạn.
  • Linh hoạt: Tùy chỉnh prefix (mặc định là ai=) thành bất kỳ thứ gì bạn thích, ví dụ: find=.
  • Hỗ trợ mọi LLM: Từ OpenAI, Anthropic đến Ollama – chỉ cần cắm API key và base URL là xong!

Cài đặt siêu dễ!

  • Node.js: npm install ai-locators
  • Python: pip install ai-locators

Dùng thử ngay nào!

Node JS

const { chromium } = require('playwright');
const { registerAISelector } = require('ai-locators');
(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  await registerAISelector({ apiKey: "your-key", model: "gpt-4o" });
  await page.goto("https://playwright.dev/");
  await page.locator("ai=get started button").click(); // Quá đơn giản!
  await browser.close();
})();

Python

from playwright.sync_api import sync_playwright
from ai_locators import register_ai_selector
with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    register_ai_selector(p, api_key="your-key", model="gpt-4o")
    page.goto("https://playwright.dev/")
    page.locator("ai=get started button").click() # Dễ như ăn kẹo!
    browser.close()

Điều gì làm nên sự khác biệt?

AI Locators tận dụng tính năng custom selector engine của Playwright, kết hợp với sức mạnh của LLM để tạo ra selector một cách thông minh. Mỗi lần bạn gọi locator, AI sẽ phân tích và trả về kết quả chính xác nhất – như có một trợ lý siêu thông minh bên cạnh bạn!

Bạn đã sẵn sàng để khám phá sức mạnh của AI Locators chưa? Hãy thử ngay nhé! 😉

Tham gia cộng đồng ngay!

Cảm ơn bạn, vì đã đọc bài ^^.

Nếu bạn thấy hay, hãy share bài viết tới bạn bè của mình, để cùng lan toả tri thức nhé ^^.

Chúc bạn có một ngày mới vui vẻ và làm việc hiệu quả!

Phong Do
Tác giả
Phong Do