arjin aydemir
inventiv
Published in
3 min readMay 12, 2023

--

Selenium WebDriver ile Maven Projesi Oluşturma

Selenium Nedir?

Selenium insan olarak klavye ve mouse ile yapabildiğimiz tüm işlemleri otomasyonla yapmamıza imkan veren bir ortam oluşturmaktadır. Selenium farklı amaçlar için IDE,Selenium Grid gibi bileşenleri de içerir ancak biz otomasyon için WebDriver’i kullanacağız.WebDriver’i istediğimiz Browser için oluşturup oluşturduğumuz driver objesini kullanarak;

İstediğimiz web uygulamarına gidebilir,

Web uygulamalarında klavye mouse kullanarak yaptığımız tüm işlemleri yapabilir,

İstediğimiz işlemlerin yapıldığını veya beklemediğimiz sonuçların oluşmadığını test edebiliriz.

Selenium Nasıl Çalışır?

Selenium’un bize kullandığı ortamı kullanıp bu ortama istediğimiz tool’ları eklemeliyiz.

  1. Programlama dili:

Selenium kullanırken kodlarımızı yazabileceğimiz bir programlama dili kullanmamız gerekir.Biz java kullanacağız.

2. IDE:

Kodlarımızı yazıp çalıştırmak için bir compiler’e ihtiyacımız olacaktır.Biz İnteliJ kullanacağız.

3. Derleme Aracı:

Selenium tool’ların çalışmasına imkan tanıyan bir ortamdır ancak kullandığımız tool’ların yüklenmesi güncel tutulması ve istenen yardımcı eklentilerin projemize dahil edilmesi için bir derleme aracına ihtiyaç duyarız.Biz Maven kullanacağız.

Proje Adımları

  1. İnteliJ’de Maven projesi açalım.
  2. Projemizin içinde Maven’ın oluşturduğu pom.xml dosyasına gidip dependencies tag’i oluşturalım.Bunun için </properties> tag’inin kapandığı satırdan sonra <dependencies> tag’i oluşturup kopyalayacağımız dependency’leri bu tag’in içine yapıştırmalıyız.

3. mvnrepository.com‘ a gidip bonigarcia webdrivermanager ve selenium-java dependency’lerini kopyalayıp pom.xml’de ilgili bölüme yapıştıralım.

4. Dependency’lerin aktif olması için InteliJ’de sağ-üst kısımda bulunan Maven logosunu tıklayıp açılan kısımdan yenile butonuna basalım.

Böylelikle pom.xml dosyamız hazır olur ve maven projemizin alt yapısı tamamlanır.

İlk olarak Driver Metot’larını inceleyelim ilerleyen yazılarımda locators’ler,WebElement metotları,Junit Framework ,Junit Assertions vb. metotları ele alacağım.

DRIVER GET METOTLARI

  1. driver.get(“url”) = Yazdığımız url’e gider.
  2. driver.getTitle() = İçinde olduğu Sayfanın başlığını görür.
  3. driver.getCurrentUrl()) = İçinde olduğu sayfanın Url’ni döndürür.
  4. driver.getPageSource() = İçinde olduğu sayfanın kaynak kodlarını döndürür.
  5. driver.getWindowHandle() = İçinde olduğu sayfanın UNIQUE hash değerini döndürür.
  6. driver.getWindowHandles() = Driver çalıştırılırken açılan tüm sayfaların UNIQUE hash değerini döndürür.

DRIVER NAVİGATE METOTLARI

  1. driver.navigate().to(“url”)= driver.get(“url”) ile aynı işlemi yapar fakat forward ve back işlemleri yapmasına olanak tanır.
  2. driver.navigate().back()= Bir önceki sayfaya dönüş yapar.
  3. driver.navigate().forward()= back() ile geldiği sayfaya yeniden gider.
  4. driver.navigate().refresh() = İçinde bulunduğu sayfayı yeniler.
  5. driver.close() =Açılan browser’i kapatır.

DRIVER MANAGE METOTLARI

Driver manage ile cookie ,window ve timeouts işlemlerini yönetebiliyoruz.

1.driver.manage().window() Metotları:

  1. 1 — driver.manage().window().getSize() = İçinde bulunduğumuz sayfalarının ölçülerini getirir.
    1.2 — driver.manage().window().getPosition() = Açılan pencerenin Position değerini pixel olarak konumunu döndürür.
    1.3 — driver.manage().window().maximize() = İçinde bulunduğu sayfayı tam ekran yapar.
    1.4 — driver.manage().window().fullscreen() = İçinde bulunduğu sayfayı tam ekran yapar.

2.driver.manage().timeouts() Metotları:

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(15)) = Görevi:Driver’a sayfanın yüklenmesi ve kullanacağımız web element’lerin bulunması için bekleyeceği maximum süreyi belirtir.Driver bu süre içerisinde sayfa yüklenir/web element bulunursa beklemeden çalışmaya devam eder.Bu süre bittiği halde sayfa yüklenmemiş/web element bulunmamışsa exception vererek çalışmayı durdurur.

Duration.ofSeconds(15): Duration class’ı Selenium-4 ile gelen zaman class’ıdır. Yani driver’a ne kadar bekleyeceğini söyler.Duration.ofSeconds(15) yerine milis ,minutes,hours da kullanılabilir.

Not: Driver’in istediğimiz işlemleri yaparken sorunla karşılaşmaması için driver.manage() metot’larından maximize() ve implicityWait metot’larının her testte kullanılması faydalı olacaktır.

Bir sonraki yazımda locators’ler,WebElement metotları,Junit Framework ,Junit Assertions vb. metotlarını anlatacağım.

Bir sonraki yazıda görüşmek üzere :)

Kaynaklar;

1- https://www.youtube.com/watch?v=P-vjp4UAMGM

--

--