Playwright Testare automată Pocket comun: Aceste 3 erori sunt cele mai ușor de răsturnat.
Playwright Testare automată Pocket comun: Aceste 3 erori sunt cele mai ușor de răsturnat.
Dramaturgul este un instrument modern de automatizare a browser-ului, dar o mulțime de oameni pas în acest proces. Și astăzi am de gând să ia cele trei greșeli cele mai comune, și am de gând să vă ajute să evitați gropi.
Eroare 1: Operațiuni fără a aștepta încărcarea elementelor
Aceasta este cea mai comună groapă. O mulțime de oameni scriu coduri care arata bine, dar le rula greșit:element not foundNu ştiu.
Greșeală:
await page.click("#submit-btn");
Problema este că pagina nu poate fi încărcată și butonul nu există.
Practică corectă:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Sau într-un mod mai modern:
await page.locator("#submit-btn").click();
Playwright-ul aşteaptă automat ca elementele să interacţioneze, ceea ce reprezintă un avantaj major faţă de Seleniu.
Eroare 2: Neglijat de așteptare pentru încărcare dinamică
Multe site-uri folosesc JavaScript dinamic pentru a reda conținut. Script-ul poate fi început extragerea de date înainte de conținutul au fost încărcate.
Greșeală:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Practică corectă:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
Pentru elemente specifice:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Eroare 3: Contextul și ciclul de viață al browser-ului nu au fost prelucrate corect
Mulți oameni creează exemple de browser și uită să le oprească, cauzând scurgeri de memorie. Sau închideţi browserul la momentul nepotrivit, provocând prăbuşirea scriptului.
Greșeală:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Practică corectă:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Sau într-un mod mai elegant:
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();
}
Rezumat
Nucleul dramaturgului esteAşteaptă.şiGestionarea ciclului de viațăNu ştiu. Amintiți-vă aceste trei puncte:
- Așteptați întotdeauna până când elementele sunt încărcate
- Conținutul dinamic trebuie să fie vizibil.
- Nu uita să închizi browserul și contextul
Astfel, 99% din greşelile comune pot fi evitate.