← Обратно към списъка

Playwright Автоматичен тест общ джоб: Това 3 грешки са най-лесните за обръщане.

itadol5j

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();
}

Резюме

Ядрото на драматурга еЧакай.както иУправление на жизнения цикълНе знам. Запомнете тези три точки:

  1. Винаги чакайте докато се заредят елементите.
  2. Динамичното съдържание трябва да бъде видимо.
  3. Не забравяйте да затворите браузъра и контекста

По този начин 99% от общите грешки могат да бъдат избегнати.