Tìm hiểu cơ bản về Playwright

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ùng python -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/

Thẻ: Playwright python AutomationTesting

Đăng vào ngày 2 tháng 7 lúc 01:50