Önceki makalemizde, WebDriver "Klasik" ve Chrome Geliştirici Araçları Protokolü (CDP) gibi mevcut otomasyon protokollerini ve bunların avantajlarını ve sınırlamalarını inceledik.
Tarayıcı otomasyonunun geleceği olan WebDriver BiDi'yi kullanmaya başlayın. Hem WebDriver "Klasik" hem de CDP'nin en iyi özelliklerini birleştirmeyi amaçlayan, şu anda geliştirilmekte olan yeni bir standart tarayıcı otomasyon protokolüdür. WebDriver BiDi, varsayılan olarak hızlı olmasını sağlayan iki yönlü iletişim sunar ve düşük düzeyde kontrol sunar.
WebDriver BiDi | |
---|---|
WebDriver "Klasik" | Chrome Geliştirici Araçları Protokolü (CDP) |
En iyi tarayıcı desteği | Hızlı, iki yönlü mesajlaşma |
W3C standardı | Alt düzey kontrol sağlar |
Test için tasarlandı |
WebDriver BiDi'nin vizyonu, en sevdiğiniz araçlardan herhangi birini kullanarak testler yazmanıza ve bunları herhangi bir tarayıcıda veya sürücüde otomatikleştirmenize olanak tanıyarak size tam esneklik sunmaktır.

Standartlaştırma
WebDriver BiDi Çalışma Grubu, çeşitli tarayıcı satıcıları, açık kaynaklı tarayıcı otomasyon projeleri ve tarayıcı otomasyon çözümleri sunan şirketlerden oluşur. Bu ortak çalışma, tarayıcı otomasyonu için gelecekte daha iyi bir deneyim sunmayı hedefliyor.

Çalışma çoğunlukla bu GitHub deposunda yapılır. Tüm büyük tarayıcı tedarikçileriyle gerçek ilerlemeyi bildiren ve tartışılabilir ve bilinmeyen ayrıntıları tartışan aylık toplantılar yapılır. Şirketler arası çalışma grubu, kararların tüm paydaşlarla uyumlu olmasını sağlar.
Yeni bir protokol oluşturmak ve uygulamak kolay bir iş değildir. Bu, çeşitli satıcıların birlikte işbirliği yapması ve çalışması için ortak çaba gerektirir. Bu süreç şunları içerir:
- Özellik: Teklif hakkında geri bildirim toplamak için yorum isteği (RFC) süreci.
- Doğrulama: Tüm uygulamalar için doğru kaynak görevi gören, platformlar arasında çalıştırılabilir bir dizi testtir.
- Uygulama: Tarayıcılar protokolleri spesifikasyona göre uygular ve doğrulama testlerini geçer.
Meydan okumalar
Bu bölümde, uyumluluk, kullanılabilirlik ve uygulanabilirlik arasında denge kurmaya çalışan WebDriver BiDi'yi uygulamanın zorluklarını ayrıntılı olarak ele alacağız.
CDP klonunun ötesinde: Tarayıcılar arası uyumluluğu benimseme
Chrome ve DevTools'a özgü öğeleriyle CDP, WebDriver BiDi spesifikasyonunda doğrudan kopyalanamaz. CDP'nin olduğu gibi uygulanması diğer tarayıcılar için uygun olmaz. Bu nedenle, yalnızca bunun nasıl yapıldığını açıklayan bir spesifikasyonun hiçbir anlamı olmaz.
Düşük gecikmeyi sağlama
WebDriver BiDi, performanstan ödün vermeden yüksek gecikmeyi işleyebilecek şekilde tasarlanmalıdır. CDP'de istemci ve sunucu neredeyse her zaman aynı fiziksel makinede çalıştırıldığı için gecikme düşüktür. Ancak WebDriver BiDi'de durum böyle değildir. Bu nedenle, WebDriver BiDi'nin istemci ile sunucu arasında gereken gidiş dönüş sayısını en aza indirmesi gerekir.
BiDi'de ergonomiye öncelik verme
Geliştiricilerin sıfırdan WebDriver BiDi istemcileri oluşturması beklenmese de protokolün fazla karmaşık hale getirilmemesi çok önemlidir. Çok karmaşık bir BiDi'nin uygulanmasının yanı sıra kullanılması da zor olur ve bu da BiDi'nin benimsenmesini ve kullanımını engeller.
BiDi'nin uygulanabilirliğini sağlama
WebDriver BiDi, çeşitli tarayıcıların sınırlamaları dikkate alınarak gerçekçi bir şekilde uygulanabilir olmalıdır. Örneğin, BiDi tarafından istemcilere gösterilen tüm JavaScript nesnelerini tutmak bellek sızıntılarına neden olabilirken hiçbirini tutmamak, hata ayıklama işlemini ve sayfanın JavaScript'iyle etkileşimi engeller. Performanstan ödün vermeden etkili tarayıcı otomasyonu sağlayan bir denge bulmak önemlidir.
Zorlukların üstesinden gelme
Bu bölümde, WebDriver BiDi'yi uygulamanın zorluklarını gidermek için kullanılan stratejileri ele alacağız.
Hızlı prototip oluşturma
BiDi'nin başarılı olması için uygulanabilirlik sorununu ele almak çok önemlidir. Spesifikasyon ve testlerdeki ilerlemeyi hızlandırmak için NodeJS'i kullanarak hızlı prototipleme yaklaşımını benimsedik. Bu, yalnızca farklı çözümleri denememize değil, aynı zamanda Web Platformu Testleri'nin geliştirilmesini de kolaylaştırır.
Performansı göz önünde bulundurarak tasarım yapma
WebDriver BiDi'de bazı durumlarda gecikme süresi yüksek olduğundan bu tasarım kararı performansa dayanır. Örneğin, tarayıcıdan bir nesne kimliği ve değeri alırken WebDriver BiDi yalnızca bir gidiş dönüş gerektirirken CDP iki tane gerektirir. Bunun nedeni, WebDriver BiDi'nin hem kimliği hem de değeri tek bir yanıtta döndürebilirken (sonuç JSON olarak dizelenebilir olmamalıdır) CDP'nin bunları ayrı ayrı döndürmesi gerektiğidir.
Web Platformu Testleri'ne (WPT) önem verme
Web Platform Testleri, BiDi'nin çalışmalarında önemli bir rol oynar. Şu anda WebDriver "Klasik" ve WebDriver BiDi'yi kapsayan WPT, tüm uygulamalar için güvenilir bir referans görevi görür. Bu testler, çeşitli uygulamalarda çalıştırılmak ve geçilmek üzere tasarlanmıştır. Böylece, WebDriver BiDi'nin başarısı için hayati önem taşıyan tarayıcılar arası tutarlı protokol yürütme sağlanır. Kontrol panelindeki en son WPT sonucuna göz atın.
Plan ve mevcut ilerleme durumu nedir?
Projenin yönünü anlamak için WebDriver BiDi yol haritasına göz atın. Yol haritası, geliştirme aşamasında olan ve sürekli olarak değişen bir dokümandır.
Tarayıcılardaki uygulama durumu için en son Web Platform Testleri'ne bakın. Bu testler, doğru kaynak olarak kullanılır.
Projenin ilerlemesini izlemek için proje ara hedeflerini takip edin.
2023'te elde edilen başarıları keşfedin ve en son gelişmelerden haberdar olun.
WebDriver BiDi'yi destekleme: nasıl yardımcı olabilirsiniz?
WebDriver BiDi ile tarayıcı otomasyonunun geleceği için heyecanlı mısınız? Desteğinizi şu şekilde gösterebilirsiniz:
- WebDriver BiDi'nin geleceğini şekillendirmeye yardımcı olarak erken test kullanıcısı ve kullanıcısı olun.
- Duymayan kalmasın! Projeyi #WebDriverBiDi hashtag'iyle sosyal medyada paylaşın.
- Destek isteğinde bulunun. Özellik isteği gönderin veya en sevdiğiniz araçlarda WebDriverBiDi'yi kullanma planlarını öğrenin.
- API'ler hakkında geri bildirimde bulunarak RFC'ye katılın.
Genel sorular
WebDriver BiDi, Chrome Geliştirici Araçları Protokolü'nün (CDP) yerini alacak mı?
Hayır. Chromium tabanlı tarayıcılar, hata ayıklama amacıyla CDP'yi kullanmaya devam edecek. WebDriver BiDi ise test ihtiyaçlarını daha ergonomik bir API ile karşılayan yeni spesifikasyondur.
Puppeteer CDP kullandığından Puppeteer desteği sonlandırılacak mı?
Hayır. Ancak WebDriver BiDi, Puppeteer'ın tarayıcılar arası bir otomasyon aracı olmasını sağlayacaktır.
Herkese açık bir yol haritanız var mı?
Evet, GitHub'daki yol haritamızı ziyaret edin.