Các bạn tạo một project Python, hoặc lấy cái đang sử dụng muốn add thư viện browser-use vào.
Truy cập link https://github.com/browser-use/browser-use có chỉ tại phần Quick start
Chạy 2 lệnh như hướng dẫn:
With pip (Python>=3.11):
pip install browser-use
Install playwright:
playwright install
Sau đó tạo một file code python để viết code mẫu như hướng dẫn vào xem chạy được liền hay không rồi tính tiếp 😄
Anh Tester sử dụng Gemini Key đang miễn phí, get API key tại đây https://ai.google.dev/gemini-api/docs/api-key
Tên models của Gemini hiện tại có thể dùng là "gemini-2.0-flash-exp". Điền vào đoạn code trên xem chạy được không nhen.
Xem các models đang được Browser Use hỗ trợ: https://docs.browser-use.com/customize/supported-models
Tạo file .env nằm ngoài cùng của project Python. Và điền các key model cùng giá trị API vào.
Code hiện tại khi dùng Gemini model sẽ là:
Cần cài đặt thêm thư viện langchain-google-genai với gợi ý trên PyCharm IDE:
hoặc chạy lệnh PIP sau:
Rồi chạy code đi nào những người bạn Tester của tui 🤩
Quá ngon lành 🎉🎉🎉
Các bạn có thể viết nhiều bước trong một Task với cấu trúc dạng chuỗi mô tả trong Python hỗ trợ như sau:
Kết quả thì mình thấy nó làm y như mình thao tác tay của một con người luôn, hình như nó có cặp mắt nhìn vào màn hình để đọc hiểu 🤨
Các bạn có thể viết nhiều Task khác nhau cùng nhiều bước hành động.
Tới đây tắt máy nghỉ được rồi đó 😄😄
Browser Use hỗ trợ mình trích xuất kết quả từ Agent khi chạy xong cho chúng ta kiểm tra assert lại xem đúng không, rất hay đối với Tester để hỗ trợ kiểm thử tự động được rồi.
Xem docs Custom Output Format tại đây: https://docs.browser-use.com/customize/output-format
Xem docs Agent History tại đây: https://docs.browser-use.com/customize/agent-settings
Danh sách Agent History cung cấp nhiều phương thức hỗ trợ để phân tích quá trình thực thi:
final_result()
: Lấy nội dung cuối cùng đã trích xuấtis_done()
: Kiểm tra xem tác vụ có hoàn thành thành công hay khônghas_errors()
: Kiểm tra xem có lỗi nào xảy ra khôngmodel_thoughts()
: Lấy quá trình suy luận của agentaction_results()
: Lấy kết quả của tất cả các hành độngfinal_result()
để truy xuất kết quả từ tham số trong class cấu trúc đã xây dựng.
BaseModel là class của browser use hỗ trợ cần truyền như vậy như docs hướng dẫn.
Tiếp theo là khởi tạo Controller để truyển class đã xây dựng vào:
Và trong tham số của Agent() có thuộc tính controller để truyền vào:
Cuối cùng khi gọi chạy agent.run()
thì gán cho nó một biến ví dụ "history" sau đó gọi hàm final_result()
để truy xuất kết quả:
Bạn có thể dùng assert trong Playwright hỗ trợ để kiểm tra kết quả đúng sai như mong đợi.
Xem thêm cú pháp assert của Python để hiểu nhiều hơn.
Trong Python, assert
là một câu lệnh dùng để kiểm tra điều kiện. Nếu điều kiện đúng, chương trình tiếp tục chạy. Nếu điều kiện sai, nó ném ra lỗi AssertionError
.
Browser Use cung cấp 2 class BrowserConfig và BrowserContextConfig để bạn điền các giá trị tương ứng các tham số được cung cấp sẵn để cấu hình browser khi chạy Agent thay cho cấu hình gốc từ Playwright Python.
Ví dụ bạn muốn thay đổi kích cỡ trình duyệt khi chạy, muốn set timeout cho waits, muốn bật tắt highlight element từ AI, muốn xuất record video,...
Mô tả các giá trị thuộc tính trong BrowserConfig
Mô tả các giá trị thuộc tính trong BrowserContext
Các thuộc tính của Chromium Command Line (extra_chromium_args: []
) xem tại đây:
https://gist.github.com/dodying/34ea4760a699b47825a766051f47d43b
Mở source code web-ui lên sau đó làm tương tự project Python bình thường đã hướng dẫn bên trên 😁
Tuy nhiên không cần cài đặt các thư viện như bên trên, vì trong source web-ui đã có sẵn các thư viện.
Anh Tester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu