WebDriver BiDi - Tarayıcılar arası otomasyonun geleceği

Maksim Sadym
Maksim Sadym

Önceki makalemizde, mevcut otomasyon protokollerini, yani WebDriver "Klasik" ve Chrome Geliştirici Araçları Protokolü (CDP) ile bunların avantajlarını ve kısıtlamalarını inceledik.

Tarayıcı otomasyonunun geleceği olan WebDriver BiDi'ye girin! Bu, WebDriver "Klasik" ve CDP'nin en iyi özelliklerini birleştirmeyi amaçlayan, şu anda geliştirme aşamasında olan yeni bir standart tarayıcı otomasyon protokolüdür. WebDriver BiDi, çift yönlü iletişim sözü vererek onu varsayılan olarak hızlandırıyor ve düşük düzeyli kontrol özellikleriyle donatılmış.

WebDriver BiDi
WebDriver “Klasik” Chrome Geliştirici Araçları Protokolü (CDP)
Tarayıcılar arası en iyi destek Hızlı, çift yönlü mesajlaşma
W3C standardı Alt düzey kontrol sağlar
Test için geliştirildi

WebDriver BiDi'nin ardındaki vizyon, favori araçlardan herhangi birini kullanarak testler yazmanıza ve bunları herhangi bir tarayıcı veya sürücüde otomatikleştirerek size tam esneklik kazandırmaktır.

WebDriver BiDi'nin arkasındaki vizyon.
WebDriver BiDi'nin arkasındaki vizyon

Standartlaştırma

WebDriver BiDi Çalışma Grubu, çeşitli tarayıcı tedarikçilerinden, açık kaynak tarayıcı otomasyon projelerinden ve tarayıcı otomasyon çözümleri sunan şirketlerden oluşur. Bu işbirliği, tarayıcı otomasyonu için gelecek vaat eden bir gelecek sağlıyor.

WebDriver BiDi Çalışma Grubu
WebDriver BiDi Çalışma Grubu

Çalışma çoğunlukla bu GitHub deposunda gerçekleştirilir. Tüm büyük tarayıcı tedarikçileriyle gerçek ilerlemeyi bildiren, tartışmalı ve bilinmeyen ayrıntıları tartışan aylık toplantılar düzenlenir. Ş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. Bunun için çeşitli satıcıların işbirliği ve birlikte çalışma çabası gerekir. Süreç şunları içerir:

  • Spesifikasyon: Teklif hakkında geri bildirim toplamak için yorum isteği (RFC) süreci.
  • Doğrulama: Platformlar arasında çalıştırılabilen bir dizi test ve tüm uygulamalar için bilgi kaynağı işlevi görür.
  • Uygulama: Tarayıcılar spesifikasyonları spesifikasyonlara göre uygular ve doğrulama testlerini geçer.

Meydan okumalar

Bu bölümde, uyumluluk, kullanılabilirlik ve uygulanabilirlik arasında bir denge oluşturmayı amaçlayan WebDriver BiDi'yi uygulamanın zorluklarını inceleyeceğiz.

CDP klonunun ötesinde: Tarayıcılar arası uyumluluğu benimseme

Chrome'a ve Geliştirici Araçları'na özgü öğelere sahip CDP, WebDriver BiDi spesifikasyonunda doğrudan kopyalanamaz. Yalnızca nasıl yapılacağını belgeleyen bir spesifikasyon oluşturarak diğer tarayıcılar için CDP'yi olduğu gibi uygulamak mümkün olmaz.

Düşük gecikmeyi sağlama

WebDriver BiDi, performanstan ödün vermeden yüksek gecikmeleri kaldıracak ş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 gerekli gidiş dönüş sayısını en aza indirmesi gerekir.

BiDi'de ergonomiye öncelik verme

Geliştiricilerin sıfırdan WebDriver BiDi istemcilerini oluşturmaları beklenmez ancak protokolü aşırı karmaşık hale getirmemek önemlidir. Aşırı karmaşık bir BiDi'nin uygulanması yalnızca zor olmakla kalmaz, aynı zamanda üzerinde çalışılması da zor bir hale gelir, bu da benimsenmesini ve kullanılmasını engeller.

BiDi'nin uygulanabilirliğini sağlama

WebDriver BiDi, çeşitli tarayıcıların sınırlamaları da dikkate alınarak gerçekçi bir şekilde uygulanabilir olmalıdır. Örneğin, BiDi tarafından istemcilere maruz kalmış tüm JavaScript nesnelerini tutmak bellek sızıntılarına neden olabilir, hiçbirini tutmamak hata ayıklamayı ve sayfanın JavaScript ile etkileşimi engelleyebilir. Performanstan ödün vermeden etkili tarayıcı otomasyonu sağlayacak bir denge kurmak önemlidir.

Zorlukların üstesinden gelme

Bu bölümde, WebDriver BiDi'yi uygulamayla ilgili zorlukları ele almak için kullanılan stratejileri ele alacağız.

Hızlı prototip oluşturma

Uygulanabilirlik zorluğunun ele alınması, BiDi'nin başarısı için hayati önem taşıyor. Spesifikasyon ve testlerdeki ilerlemeyi hızlandırmak için NodeJS kullanarak hızlı bir prototip oluşturma yaklaşımı benimsedik. Bu, farklı çözümlerle denemeler yapmamıza olanak sağlamakla kalmaz, aynı zamanda Web Platformu Testlerinin geliştirilmesini de kolaylaştırır.

Performansa önem vererek tasarım yapın

Bazı durumlarda WebDriver BiDi'de gecikme yüksek olduğundan, bu tasarım kararı performanstan etkilenir. Örneğin, tarayıcıdan bir nesne kimliği ve değer alırken, WebDriver BiDi yalnızca bir döngü gerektirir; CDP ise iki döngü gerektirir. Bunun nedeni, WebDriver BiDi'nin hem kimliği hem de değeri tek bir yanıtta döndürebilmesi, CDP'nin ise bunları ayrı olarak döndürmesi gerekmesidir (sonuç JSON-serileştirilebilir olmamalıdır).

Web Platformu Testlerinin (WPT) Vurgusu

Web Platformu 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 işlevi görmektedir. Bu testler, çeşitli uygulamalarda çalıştırılmak ve iletilmek üzere tasarlanmıştır. Böylece, WebDriver BiDi'nin başarısı için büyük önem taşıyan, tarayıcılar arası protokolün tutarlı bir şekilde yürütülmesi sağlanır. Kontrol panelindeki en son WPT sonucunu kontrol edin.

Plan ve şu anki ilerleme durumu nedir?

Projenin yönünü anlamak için WebDriver BiDi yol haritasına göz atın. Yol haritası devam eden ve sürekli gelişen bir çalışmadır.

Doğru bilgi kaynağı görevi gördüğünden, tarayıcılardaki uygulama durumu için en yeni Web Platformu Testlerine bakın.

İlerlemeyi takip etmek için proje ara hedeflerini takip edin.

2023'teki başarıları keşfedin ve son gelişmelerden haberdar olun.

WebDriver BiDi'yi destekleme: nasıl yardımcı olabilirsiniz?

WebDriver BiDi ile tarayıcı otomasyonunun geleceği konusunda heyecanlı mısınız? Desteğinizi şu şekilde gösterebilirsiniz:

  • İlk test kullanıcıları ve kullanmaya başlayanlardan biri olarak WebDriver BiDi'nin geleceğini şekillendirmeye yardımcı olun.
  • Duymayan kalmasın! #WebDriverBiDi hashtag'ini kullanarak projeyi sosyal medyada paylaşın.
  • Destek isteyin. Bir özellik isteğinde bulunun veya WebDriverBiDi'yi kullanmaya yönelik planlarıyla ilgili favori araçlarınıza göz atın.
  • API'ler hakkında geri bildirim sağlayarak 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 ederken WebDriver BiDi, test ihtiyaçlarını daha ergonomik bir API ile ele alan yeni spesifikasyondur.

Puppeteer CDP kullandığından bu, Puppeteer desteğinin sonlandırılacağı anlamına mı geliyor?

Hayır. Ancak WebDriver BiDi, Puppeteer'ın tarayıcılar arası otomasyon aracı olmasını sağlayacaktır.

Herkese açık bir yol haritanız var mı?

Evet, GitHub'daki yol haritamızı inceleyin.