Playwright là một khung kiểm thử tự động hóa giao diện người dùng web do Microsoft phát triển.
Tài liệu chính thức: https://playwright.dev/python/docs/intro#installing-playwright-pytest
Cách cài đặt
pip install pytest-playwright
playwright install
Lưu ý: Nếu bạn sử dụng môi trường ảo
.venv, có thể dùngpython -m playwright installđể cài đặt trình duyệt vào môi trường hiện tại.
Truy cập trang web
trang_di_chuyen_den("https://example.com")
Định vị phần tử
phan_tu = man_hinh.tim_theo_vai_tro("button", ten="Đăng nhập").nhap()
man_hinh.tim_theo_vai_tro(): Định vị bằng thuộc tính khả năng tiếp cận.man_hinh.tim_theo_van_ban(): Định vị theo nội dung văn bản.man_hinh.tim_theo_nhan(): Định vị phần tử biểu mẫu qua nhãn liên kết.man_hinh.tim_theo_noi_dung_cho_truoc(): Định vị ô nhập liệu qua placeholder.man_hinh.tim_theo_van_ban_thay_the(): Định vị phần tử, thường là hình ảnh, qua alt text.man_hinh.tim_theo_tieu_de(): Định vị phần tử qua thuộc tính title.man_hinh.tim_theo_id_kiem_thu(): Định vị phần tử dựa trên thuộc tính data-testid (có thể cấu hình các thuộc tính khác).
Định vị thông qua CSS hoặc XPath
man_hinh.locator("css=button").nhap()
man_hinh.locator("xpath=//button").nhap()
man_hinh.locator("button").nhap()
man_hinh.locator("//button").nhap()
Định vị phần tử trong iframe
locator = man_hinh.frame_locator("iframe-tim-kiem").tim_theo_vai_tro("button", ten="Tìm kiếm")
Thao tác với phần tử
| Thao tác | Mô tả |
|---|---|
| locator.chon() | Chọn checkbox |
| locator.nhap() | Nhấp vào phần tử |
| locator.bo_chon() | Bỏ chọn checkbox |
| locator.di_chuyen_con_truong() | Di chuột qua phần tử |
| locator.nhap_van_ban() | Nhập văn bản |
| locator.dap_an_trong_foco() | Đặt phần tử vào focus |
| locator.an_pho_bieng() | Ấn phím |
| locator.chon_tep_tin() | Chọn tệp tin |
| locator.chon_lua_chon() | Chọn tùy chọn |
Chuyển đổi cửa sổ
Mở cửa sổ mới
cua_so_moi = trinh_dieu_khien.moi_cua_so()
Chuyển sang cửa sổ bật lên mới
with trinh_dieu_khien.ki_vong_cua_so() as thong_tin_cua_so_moi:
man_hinh.tim_theo_nhan("Xác nhận").tim_theo_vai_tro("button", ten="Hoán đổi").nhap()
# Cửa sổ mới
cua_so_moi = thong_tin_cua_so_moi.gia_tri
Kiểm tra điều kiện
kiem_tra(man_hinh).phai_co_tieu_de("")
kiem_tra(man_hinh.tim_theo_vai_tro("tieude", ten="Cài đặt")).phai_hien_thi()
| Kiểm tra | Mô tả |
|---|---|
| kiem_tra(locator).phai_chon() | Checkbox đã được chọn |
| kiem_tra(locator).phai_kich_hoat() | Phần tử được kích hoạt |
| kiem_tra(locator).phai_hien_thi() | Phần tử hiển thị |
| kiem_tra(locator).chua_van_ban() | Phần tử chứa văn bản |
| kiem_tra(locator).phai_co_thuoc_tinh() | Phần tử có thuộc tính |
| kiem_tra(locator).phai_co_so_luong() | Danh sách phần tử có độ dài cho trước |
| kiem_tra(locator).phai_co_van_ban() | Phần tử khớp với văn bản |
| kiem_tra(locator).phai_co_gia_tri() | Ô nhập liệu có giá trị |
| kiem_tra(man_hinh).phai_co_tieu_de() | Trang có tiêu đề |
| kiem_tra(man_hinh).phai_co_url() | Trang có URL |
Chạy và gỡ lỗi
Chạy kịch bản - chế độ hiển thị trình duyệt
pytest --headed
Chọn trình duyệt - hỗ trợ kiểm tra nhiều trình duyệt cùng lúc
pytest --browser webkit --browser firefox
Gỡ lỗi kịch bản
PWDEBUG=1 pytest -s tests/test_van_ban.py
Tạo kịch bản
playwright codegen https://v2-app-staging.usdd.network/