Anıl Şenocak

WebDriver Nedir?

WebDriver web otomasyon framework'üdür. Bu framework sadece Firefox veya Google Chrome değilde farklı tarayıcılar kullanarak da testinizi çalıştırır. Selenium IDE ile ayırılan en büyük özellikten biridir.

  • WebDriver ayrıca test scriptlerinde programlama dili kullanmayı sağlar. Selenium IDE de yoktur bu.
  • if-then-else or switch-case gibi karşılaştırma işlemleri kullanabiliriz.
  • do-while gibi döngüleri kullanabiliriz.​

WebDriver'ın desteklediği programlama dilleri;

  • Java
  • .Net
  • PHP
  • Python
  • Perl
  • Ruby

Bu yazıda Java ve Eclipse kullanacağız.

Selenium RC and Webdriver farkı; WebDriver 2006 hayatımıza girmeden önce test aracı olarak Selenium Remote Control vardı. WebDriver ve Selenium RC ortak özellikleri;

  • İkiside test yazmada programlama dili desteği var.
  • İkiside farklı tarayıcılar üzerinden test koşmamızı sağlar.

Peki fark nerede?

1. Mimari

WebDriver'ın mimarisi Selenium RC den daha basit; WebDriver tarayıcıyı işletim sesitemi seviyesinde kontrol ediyor.

Selenium RC'nin mimarisi daha karışık
  • Teste başlamadan önce ayrı bir program olan Selenium Remote Control (RC) Server'ı başlatmamız gerekiyor.
  • Selenium RC Server tarayıcı ile Selenium komutları arasındaki "orta adam" görevi yapar.
  • Teste başladığımızda, Selenium RC Server tarayıcıya Selenium Core denilen Javascript programını aktif eder.
  • Aktif edildiğinde, Selenium Core test programından RC Server'a aktarılan komutları alır ve başlatır.
  • Komutlar alındığında, Selenium Core onları Javascript komutları olarak çalıştırır.
  • Tarayıcı Selenium Core'ın talimatlarına uyar ve cevabını RC Server'a aktarır.
  • RC Server tarayıcının cevapları alır ve bize gösterir.
  • RC Server böylece bir sonraki komutu işler ve testi bitene kadar tekrar eder.

2. Hız

WebDriver Selenium RC'den daha hızlıdır. Tarayıcı ile direk konuştuğu tarayıcının kendi çekirdeğini kullanır.

Selenium RC Selenium Core denilen Javascript programını kullandığı için daha yavaştır. Selenium Core direk tarayıcı ile etkileşim içindedir yazılımcı değil.

3. Gerçek Zamanlı Etkileşim

WebDriver sayafadaki yapılar ile daha gerçekçi etkileşime geçer. Örneğin, Bir web sayfasında disabled olarak tanımlanan textbox'ı test ettiğimizi düşünelim. WebDriver gerçekte bizimde yapamayacağımız gibi textbox'a herhangi bişey yazamayacaktır. Selenium Core disabled olan yapıya erişebilecektir. Geçmişte, Selenium test uzmanları Selenium Core testlerinde disabled olan bir elemente değerler girildiğini şikayet ediyorlardı.

4. API

Selenium RC API daha olgunlaştı, ancak fazlalıklar genellikle karışık komutlar içeriyordu. Örneğin, çoğu zaman, testerlar (type ile typeKeys - mouseDown ile mouseDownAt) arasında hangisini kullancakları konusunda ikiye düşüyorlardı. Daha kötüsü, farklı tarayıcılar bu komutların her birini farklı şekillerde de yorumlar!

WebDriver API ile işlem Selenium RC'den daha basitleşti. Kafa karıştırıcı komutlar içermiyor.

5. Tarayıcı Desteği

WebDriver Headless HtmlUnit tarayıcısını destekleyebilir

HtmlUnit'e "headless" denilmesinin sebebi, gizli bir taraıcı olmasıdır. Çok hızlıdır çünkü sayfanın yüklenmesine zaman harcamaz. Bu, test yürütme döngülerini hızlandırır. Kullanıcı için görünmez olduğu için, yalnızca otomatik yöntemlerle kontrol edilir.

Selenium RC Headless HtmlUnit tarayıcısını desteklemez. İşlemleri gerçekleştirebilmek için gerçek, görünebilen bir tarayıcıya ihtiyaç duyar.

Reference from GURU99