Playwright Automatic Test Common Pocket: Tämä 3 virhettä ovat helpoin kumota.
Playwright Automatic Test Common Pocket: Tämä 3 virhettä ovat helpoin kumota.
Playwright on moderni selainautomaatiotyökalu, mutta monet ihmiset astuvat prosessiin. Tänään poistan kolme yleisintä virhettä ja autan sinua välttämään kuopat.
Virhe 1: Toiminta odottamatta elementtien lastausta
Tämä on yleisin kuoppa. Monet kirjoittavat koodit, jotka näyttävät hyviltä, mutta tutkivat väärin:element not foundEn tiedä.
Virhe:
await page.click("#submit-btn");
Ongelmana on, että sivua ei saa ladata eikä painiketta ole olemassa.
Oikea käytäntö:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Tai modernimmalla tavalla:
await page.locator("#submit-btn").click();
Playwrightin paikannin odottaa automaattisesti elementtien vuorovaikutusta, mikä on suuri etu Seleniumiin verrattuna.
Virhe 2: Laiminlyöty odottamassa dynaamista lastausta
Monet verkkosivut käyttävät JavaScript dynaamisesti tehdä sisältöä. Skriptisi on ehkä alkanut poimia tietoja ennen sisällön lataamista.
Virhe:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Oikea käytäntö:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
tai erityisistä osista:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Virhe 3: Selaimen taustaa ja sivun elinkaarta ei käsitelty oikein
Monet ihmiset luovat selainesimerkkejä ja unohtavat sammuttaa ne aiheuttaen muistin vuotamista. Tai sammuttaa selaimen väärään aikaan, jolloin käsikirjoitus romahtaa.
Virhe:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Oikea käytäntö:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Tai tyylikkäämmin:
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();
}
Yhteenveto
Playwrightin ydin onOdota.sekäElinkaariEn tiedä. Muista nämä kolme seikkaa:
- Odota aina kunnes elementit on ladattu
- Dynaamisen sisällön on oltava näkyvää.
- Muista sulkea selain ja konteksti
Näin voidaan välttää 99 prosenttia yleisistä virheistä.