Playwright Автоматичен тест общ джоб: Това 3 грешки са най-лесните за обръщане.
Playwright Автоматичен тест общ джоб: Това 3 грешки са най-лесните за обръщане.
Playwright е модерен инструмент за автоматизация на браузъра, но много хора стъпват в процеса. Днес ще премахна трите най-често срещани грешки и ще ви помогна да избегнете дупките.
Грешка 1: Операции без изчакване за зареждане на елемент
Това е най-често срещаната яма. Много хора пишат кодове, които изглеждат добре, но ги правят погрешно:element not foundНе знам.
Грешка:
await page.click("#submit-btn");
Проблемът е, че страницата не може да бъде заредена и бутонът не съществува.
Правилна практика:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Или по-модерен начин:
await page.locator("#submit-btn").click();
Локаторът на плейрайт автоматично чака елементите да взаимодействат, което е голямо предимство пред Селениум.
Грешка 2: Пренебрегнато чакане за динамично зареждане
Много сайтове използват JavaScript динамично, за да предават съдържание. Вашият скрипт може да е започнал да извлича данни преди съдържанието да бъде заредено.
Грешка:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Правилна практика:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
или за специфични елементи:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Грешка 3: Контекстът и жизненият цикъл на страницата на браузъра не бяха обработени правилно
Много хора създават примери за браузър и забравят да ги изключат, причинявайки изтичане на памет. Или да изключим браузъра в неподходящо време, което да срине сценария.
Грешка:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Правилна практика:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Или по-елегантен начин:
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
try {
await page.goto("https://example.com");
// 你的操作
} finally {
await context.close();
await browser.close();
}
Резюме
Ядрото на драматурга еЧакай.както иУправление на жизнения цикълНе знам. Запомнете тези три точки:
- Винаги чакайте докато се заредят елементите.
- Динамичното съдържание трябва да бъде видимо.
- Не забравяйте да затворите браузъра и контекста
По този начин 99% от общите грешки могат да бъдат избегнати.