Playwright Automatic Test Common Pocket: Detta 3 fel är det enklaste att störa.
Playwright Automatic Test Common Pocket: Detta 3 fel är det enklaste att störa.
Playwright är ett modernt webbläsarautomationsverktyg, men många människor går i processen. Och idag ska jag ta ut de tre vanligaste misstagen, och jag kommer att hjälpa dig att undvika groparna.
Fel 1: Operationer utan att vänta på elementbelastning
Detta är den vanligaste gropen. Många skriver koder som ser bra ut, men kör dem fel:element not foundJag vet inte.
Misstag:
await page.click("#submit-btn");
Problemet är att sidan inte kan laddas och knappen inte existerar.
Korrekt praxis:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Eller på ett mer modernt sätt:
await page.locator("#submit-btn").click();
Playwrights locator väntar automatiskt på att element ska interagera, vilket är en stor fördel jämfört med Selenium.
Fel 2: Försummad väntan på dynamisk lastning
Många webbplatser använder JavaScript dynamiskt för att göra innehåll. Ditt manus kan ha börjat extrahera data innan innehållet laddades.
Misstag:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Korrekt praxis:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
Eller för specifika element:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Fel 3: Kontexten och sidlivscykeln i webbläsaren behandlades inte korrekt
Många människor skapar webbläsare exempel och glömmer att stänga av dem, vilket orsakar minne läckage. Eller stäng webbläsaren vid fel tidpunkt, vilket orsakar manuset att kollapsa.
Misstag:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Korrekt praxis:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Eller på ett mer elegant sätt:
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();
}
Sammanfattning
Playwrights kärna ärVäntaochLivscykelhanteringJag vet inte. Kom ihåg dessa tre punkter:
- Vänta alltid tills element laddas
- Dynamiskt innehåll måste vara synligt.
- Kom ihåg att stänga webbläsaren och sammanhanget
På så sätt kan 99% av vanliga misstag undvikas.