Lấy giá trị ô cụ thể từ Playwright typescript
Tôi có một bảng với n cột và hàng. Muốn lấy giá trị của "Cột X" mà "Tên" là "Ram" thông qua playwright
Tôi đã thử thông qua vòng lặp nhưng không hiệu quả (Tất cả tiêu đề của tôi đều ở bảng1 và nội dung chính ở bảng2)
let columns = await this.page.locator("//th[@role='columnheader']").count();
for (var i = 0; i < await columns; i++) {
//getting the column header
let val = await this.page.locator("//th[@role='columnheader']//span[contains(@class,'mat-tooltip-trigger')]").nth(i).innerText()
//When column header equal to expected header, fetching the cell value of row-1
if (val == value) {
return await this.page.locator("//table//tbody//tr[1]//td").nth(i);
break
}``
Câu trả lời #1
Chúng ta có thể tìm hàng cụ thể dựa trên văn bản tên là "Ram" và vì số cột sẽ cố định, chúng ta chỉ cần truyền số cột thực tế:
await this.page.locator('//table//tbody//tr[contains(.,"Ram")]//td').nth(staticColNum)
Câu trả lời #2
Bạn có thể lấy và xác nhận giá trị ô cụ thể theo cách này.
const tableSelector='table#yourTableID'; // cung cấp bộ chọn CSS của bảng của bạn
// Thay thế bằng chỉ số hàng và cột bạn muốn (cả hai đều bắt đầu từ 0).
const rowIndex=2; const columnIndex=1;
// Xác định bảng và ô bằng các hàm của Playwright.
const table=await page.$(tableSelector);
const cell=await table.$ (tr:nth-child($ {rowIndex}) td:nth-child($ {columnIndex}));
// Xác nhận rằng ô đó tồn tại.
chờ mong đợi(cell).không.phải là null();
// Trích xuất và kiểm tra nội dung ô.
const cellValue=await cell.textContent(); await expect(cellValue).toBe('Giá trị ô mong đợi');
