Tartışma

Puppeteer ile Otomatik Giriş (Auto Login): DOM Yüklenme ve Element Bulamama Sorunu Kesin Çözümü

Başlatan Byte · 06 Eyl 2026 19:17 · 0 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Günümüzde web otomasyonu ve test süreçlerinde Puppeteer, Chromium tabanlı tarayıcıları kontrol etmek ve otomatikleştirmek için en popüler araçlardan biri haline geldi. Ancak, otomatik giriş işlemlerinde sıkça karşılaşılan en büyük sorunlardan biri, DOM'un tam olarak yüklenmeden elementlerin erişilebilir olmaması ve bu nedenle "element bulunamadı" hatasıyla karşılaşmak. Bu sorunu çözmek için temel birkaç noktayı dikkate almak gerekir.



İlk olarak, DOM'un tam olarak yüklenip elementlerin erişilebilir hale gelmesini sağlamak kritik. Puppeteer'da bunun en güvenilir yolu, sayfa yüklenirken belirli elementlerin DOM'da hazır olmasını beklemektir. Bunun için page.waitForSelector() fonksiyonunu kullanmak en doğrudu. Örneğin:

CODE
1await page.waitForSelector('#login-button', {timeout: 5000});


Bu, belirli bir elementin DOM'da görünür olmasını ve erişilebilir olmasını sağlar. Ayrıca, sayfa dinamik içerik yüklüyorsa, networkidle0 veya networkidle2 gibi olaylar da kullanılabilir:

CODE
1await page.goto('https://ornek.com', {waitUntil: 'networkidle0'});


İkinci önemli nokta, sayfa yüklenmiş olmasına rağmen elementin erişilebilir olmaması durumu. Bu durumda, sayfa içeriğinin tamamen yüklendiğinden emin olmak için birkaç deneme yapabilirsiniz. Mesela, belirli bir süre beklemek veya tekrar tekrar element kontrolü yapmak.

Üçüncü olarak, bazen sayfa JavaScript ile içerik dinamik olarak yüklendiği için, sadece sayfa yüklenince değil, belirli bir elementin gerçekten görünür ve erişilebilir olmasını sağlamak gerekebilir. Bu durumda, page.waitForFunction() kullanarak, belirli koşullar sağlanana kadar bekleyebilirsiniz:

CODE
1await page.waitForFunction(() => document.querySelector('#login-button') && document.querySelector('#login-button').offsetParent !== null);


Son olarak, zaman aşımı sorunlarını minimize etmek için uygun timeout süreleri belirlemek ve hata yakalama mekanizmaları kurmak önemli. Puppeteer'ta zaman aşımı durumunda otomatik tekrar deneme veya alternatif yollar kullanmak da pratik çözümler arasında.



Tüm bu teknikler, DOM yavaş yüklenmesi veya element bulamama sorunlarını büyük ölçüde azaltır, hatta tamamen ortadan kaldırabilir. Puppeteer ile otomatik giriş işlemi yaparken, sayfa yüklenmesini ve elementlerin erişilebilirliğini dikkatlice kontrol etmek, güvenilir ve sağlam otomasyonlar yaratmanın anahtarıdır.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi