Playwright Otomatik Test Ortak Pocket: Bu 3 hata, devrin en kolay olanı.
Playwright Otomatik Test Ortak Pocket: Bu 3 hata, devrin en kolay olanı.
Playwright modern bir tarayıcı otomasyon aracıdır, ancak süreçte birçok insan adım atıyor. Ve bugün en yaygın üç hatadan vazgeçeceğim ve pitlerden kaçınmanıza yardımcı olacağım.
Hata 1: Donanım yüklemesini beklemeden Operasyonlar
Bu en yaygın pit. Birçok insan iyi görünen kodları yazar, ancak onları yanlış çalıştırın:element not foundBilmiyorum.
Hata:
await page.click("#submit-btn");
Sorun şu ki sayfa yüklenemez ve düğme mevcut değildir.
Doğru uygulama:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Ya da daha modern bir şekilde:
await page.locator("#submit-btn").click();
Playwright'un lokatörü, Selenium üzerinde büyük bir avantaj olan elementleri otomatik olarak bekler.
Hata 2: Dinamik yükleme için Neglected
Birçok web sitesi JavaScript dinamik olarak içerik oluşturmak için kullanır. Senaryonuz, içeriklerin yüklenmeden önce verileri çıkarmaya başlayabilir.
Hata:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Doğru uygulama:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
Veya belirli elementler için:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Hata 3: Tarayıcının bağlamı ve sayfası yaşam döngüsü doğru işlenmedi
Birçok insan tarayıcı örneklerini yaratır ve onları kapatmayı unutur, hafıza sızıntısına neden olur. Ya da tarayıcıyı yanlış zamanda kapat, senaryoyu çökmesine neden olur.
Hata:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Doğru uygulama:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Ya da daha zarif bir şekilde:
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();
}
Özet Özet Özet Özet
Playwright'un çekirdeğidirBekleveYaşam döngüsü yönetimiBilmiyorum. Bu üç noktayı hatırlayın:
- Her zaman elementler yüklenmeye kadar bekleyin
- Dinamik içerik görünür olması gerekir.
- Tarayıcıyı ve bağlamı kapatmayı unutmayın
Bu şekilde, ortak hataların% 99'u kaçınılabilir.