BrowserAct'in stealth tarayıcısı, her iki betik de aynı giriş akışını tamamlamasına rağmen, Playwright'ın varsayılan headless çalışmasını bot olarak işaretleyen bir bot tespit kontrolünden geçti. Bu karşılaştırma, otomasyona karşı korunan sitelerle etkileşime girmeniz gerektiğinde neden ajan tabanlı (agent-based) bir yaklaşımın daha güvenli olabileceğini gösteriyor.

Test neden önemli

Otomasyon araçları; test etme, veri toplama ve hesap yönetimi süreçlerini besler. Çoğu geliştirici, Playwright gibi seçici (selector) odaklı çerçeveleri tercih eder; çünkü bu araçlar "şu CSS seçicisine sahip düğmeye tıkla" gibi kesin talimatlar yazmanıza ve sonuçları hızlıca doğrulamanıza olanak tanır. Ancak modern siteler, headless tarayıcıları tespit eden betikler barındırır: genel bir user-agent dizisi, webdriver özelliği veya eksik insan benzeri etkileşim modelleri. Bu sinyaller ortaya çıktığında, site isteği engeller veya bir CAPTCHA sunarak betiği etkisiz hale getirir.

Ajan tarayıcılar, önceden yazılmış seçicilere güvenmek yerine bir insan kullanıcıyı taklit etmeye çalışır. Bir sayfayı uygulanabilir öğeler koleksiyonu olarak ele alırlar ve bir öğeyi CSS yolu yerine dahili bir indeksteki konumuna göre seçerler. Test, bu iki yaklaşımı JavaScript ile oluşturulan bir giriş sayfası ve kasıtlı olarak bot kontrolü yapan bir site üzerinde karşılaştırdı.

Deney

Aynı adımları gerçekleştiren iki betik yazdım: giriş sayfasını yükle, kimlik bilgilerini gir, gönder ve envanter sayfasına ulaş. Betiklerden biri Playwright'ı varsayılan headless modunda kullandı; diğeri ise bot tespitini tetikleyen parmak izlerini maskeleyen BrowserAct'in stealth tarayıcısını kullandı.

Her iki betik de bir sandbox sitesine karşı kimlik doğrulaması yaptı ve aracın ne olduğundan bağımsız olarak temel giriş akışının çalıştığını kanıtladı. Farklılık, betikler isBot adlı bir JSON bayrağı döndüren özel bir bot tespit sayfasını ziyaret ettiğinde ortaya çıktı. Playwright, beş ayrı tespit kontrolünü tetikleyerek isBot: true raporladı. BrowserAct ise isBot: false döndürerek sayfanın onu normal bir insan ziyaretçi olarak gördüğünü gösterdi.

Farkın kaynağını iki teknik detaya dayandırdım. Playwright'ın varsayılan yapılandırması genel bir user-agent dizisi gönderir ve webdriver bayrağını açıkta bırakır; her ikisi de bir tespit betiğinin fark etmesi için oldukça kolaydır. BrowserAct'in stealth modu ise user-agent'ı yeniden yazar, webdriver özelliğini kaldırır ve parmak izini tipik bir masaüstü tarayıcısıyla uyumlu hale getirir.

Araçlar arka planda nasıl farklılık gösteriyor?

Özellik Playwright (varsayılan) BrowserAct (stealth)
Etkileşim modeli Seçici odaklı, deterministik Ajan odaklı, indeks tabanlı
Önceden yazılmış seçici ihtiyacı Zorunlu; betik tam DOM yapısını bilmelidir Gerekli değil; ajan uygulanabilir öğeleri çalışma zamanında keşfeder
Düzen değişikliklerini yönetme Seçiciler değişirse bozulur Öğelerin konumları indeksli liste içinde kaldığı sürece devam eder
Bot kontrollerine maruz kalma User-agent ve webdriver olduğu gibi bırakılır Parmak izleri kasıtlı olarak maskelenir
Tipik kullanım durumu Dahili siteler, kararlı kullanıcı arayüzü, hızlı test döngüleri Anti-otomasyon önlemleri olan halka açık siteler, sürekli değişen sayfalar

Tablo, pratik ödünleşimleri özetlemektedir. Playwright, siteyi kontrol ettiğinizde ve kararlı öğe tanımlayıcıları garanti edebildiğinizde öne çıkar. Ajan tarayıcılar ise sayfa yapısını tahmin edemediğinizde veya site betikleri aktif olarak engellemeye çalıştığında avantaj sağlar.

Kimler fayda sağlar ve kimler risk altındadır?

Kendi uygulamaları için regresyon test paketleri oluşturan geliştiriciler, Playwright kullanarak maliyetleri düşük ve test hızını yüksek tutabilirler. Playwright'ın deterministik yapısı, hataları doğrudan kod regresyonlarına işaret eder ve ekstra gizlilik katmanlarına ihtiyaç duyulmaması karmaşıklığı azaltır.

Aksine, veri kazıyan, hesap oluşturma süreçlerini otomatize eden veya rakip siteleri izleyen ekipler, hedef sayfaların sık değişmesi veya agresif bot tespiti içermesi nedeniyle sık sık engellere takılırlar. Bu senaryolarda, bir ajan tarayıcı doğrudan "bot olduğunuz" uyarısıyla karşılaşarak tıkanmak yerine, ihtiyaç duyulan veriye ulaşmaya devam eder.

"Çalıştı" demenin gizli maliyetleri

Başarılı bir çıkış kodunun, otomasyonun amaçlandığı gibi davrandığını garanti etmediği konusunda uyarıyorum. Playwright çalışmasında betik bir hata vermeden tamamlandı, ancak sayfa isteği hala bir bot olarak değerlendirdi. Sonuç, gizli bir başarısızlıktı: yalnızca insanlara özel içeriklere dayanan sonraki adımlar, beklenen veriyi hiçbir zaman alamadı.

Bu tür sessiz hataları ortaya çıkarmak için her çalıştırmadan sonra sayfa kanıtlarını inceleyin: kaydırma konumu, doküman yüksekliği ve ağ çağrıları. Eğer DOM, bir insanın göreceğinden farklı görünüyorsa veya ağ trafiği doğrulama testlerine yönelik beklenmedik yönlendirmeler içeriyorsa, otomasyon muhtemelen hedefine ulaşamamıştır.

Özetle

Eğer sitenin sahibiyseniz ve kararlı seçiciler kullanarak betik yazabiliyorsanız, Playwright; hızlı, ucuz ve CI süreçlerine entegre edilmesi kolay olmasıyla pragmatik bir seçenek olmaya devam eder. Bilinmeyen düzenlerle, agresif anti-otomasyon savunmalarıyla veya sık değişen kullanıcı arayüzleriyle karşılaştığınızda, BrowserAct gibi bir ajan tarayıcı daha dirençli bir yol sunar. Başarılı bir çalıştırmaya körü körüne güvenmeyin; sayfanın bir insan gibi davranıp davranmadığını doğrulayın ve hedef sitenizin risk profiline uygun aracı seçin.