← Zpět na seznam

Playwright Automatická zkušební společná kapsa: Tyto 3 chyby jsou nejjednodušší převrátit.

itadol5j

Playwright Automatická zkušební společná kapsa: Tyto 3 chyby jsou nejjednodušší převrátit.

Playwright je moderní nástroj pro automatizaci prohlížeče, ale mnoho lidí krok v procesu. A dnes odstraním tři nejčastější chyby a pomůžu ti vyhnout se jámě.

Chyba 1: Operace bez čekání na zatížení prvku

Tohle je nejčastější jáma. Hodně lidí píše kódy, které vypadají dobře, ale špatně je prověřují:element not foundNevím.

Chyba:

await page.click("#submit-btn");

Problém je, že stránka nemusí být načtena a tlačítko neexistuje.

Správná praxe:

await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");

Nebo modernějším způsobem:

await page.locator("#submit-btn").click();

Playwrightův lokátor automaticky čeká na interakci prvků, což je velká výhoda oproti Selenu.

Chyba 2: Zanedbání čekání na dynamické zatížení

Mnoho webových stránek používá JavaScript dynamicky k vytvoření obsahu. Váš skript možná začal extrahovat data před načtením obsahu.

Chyba:

await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串

Správná praxe:

await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);

nebo pro specifické prvky:

await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");

Chyba 3: Kontext a životní cyklus stránky prohlížeče nebyl správně zpracován

Mnoho lidí vytváří příklady prohlížeče a zapomene je vypnout, což způsobuje únik paměti. Nebo vypněte prohlížeč ve špatnou dobu, což způsobí zhroucení skriptu.

Chyba:

const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器

Správná praxe:

const browser = await chromium.launch();
try {
  const page = await browser.newPage();
  await page.goto("https://example.com");
  // 你的操作
} finally {
  await browser.close();
}

Nebo elegantnějším způsobem:

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

Shrnutí

Playwrightovo jádro jePočkej.aŘízení životního cykluNevím. Pamatujte si tyto tři body:

  1. Vždy čekat, až prvky jsou načteny
  2. Dynamický obsah musí být viditelný.
  3. Nezapomeňte zavřít prohlížeč a kontext

Tímto způsobem se lze vyhnout 99% běžných chyb.