Playwright Automatická zkušební společná kapsa: Tyto 3 chyby jsou nejjednodušší převrátit.
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:
- Vždy čekat, až prvky jsou načteny
- Dynamický obsah musí být viditelný.
- Nezapomeňte zavřít prohlížeč a kontext
Tímto způsobem se lze vyhnout 99% běžných chyb.