Yükleniyor
Selenium

Selenium Java findElement() ve findElements() kullanımı ve farkları

Selenuim java kullanarak findElement() ve findElements() kullanımı ve farkları hakkında bir blog.

  • Yıldız:
  • Yazar: İnanç Özkul
  • Web sayfası: inancozkul.com.tr
  • Oluşturma Tarihi:8.04.2021 13:13:58
  • Güncellenme Tarihi:18.01.2022 14:01:04

Merhaba,

Genellikle test otomasyon mülakatlarında sorulan veya sorulabilecek olan find element ve find elements farkı hakkında bu yazıyı ele almak istedim. Bu yazıda ikisinin kullanımı, farklarını ele alacağım.

Başlamadan önce locator(Konum belirleyici hakkında) ufak bir giriş yapalım. Herhangi bir sayfaya girildiğinde karşınıza çıkan bütün html tag’lerinin Selenium tarafından tanınması için girdiler olarak kısaca açıklamasını gerçekleştirebiliriz.

Bir elementi tanımlamak için birden fazla yöntem bulunmaktadır. TDD çevresinde gerçekleştirilen çalışmalarda genellikle alan için özel bir class, id veya herhangi bir tag ile isimlendirme yapılmaktadır. Aksi durumlarda bu özel tanımlama bulunmadığında Xpath adı verilen tanımlamalar gerçekleştirilmektedir. Bu yazımda bu tanımların nasıl yapıldığını değil sadece isim olarak vereceğim.  

Locator Çeşitleri(Locator Strategy);

·         ID

·         Name

·         ClassName

·         TagName

·         LinkText

·         CssSelector

·         Xpath

Selenium’da web elementleri tanımlamak için 2 adet method bulunmaktadır

·         findElement() genellikle sayfada bulunan ve eşleşen Unique bir elementi döndürmektedir

·         findElements() genellikle sayfada bulunan ve eşleşen bütün elementeri liste şeklinde döndürmektedir.

Kullanımları ise şu şekildedir

List<WebElement> elementName = driver.findElement(s)(By.LocatorStrategy("LocatorValue"));

findElement() ve findElements() farkları;

findElement()

findElements()

Locator   ile eşleşen ilk web elementini döndürür

Locator   ile eşleşen bütün web elementlerini döndürür

Element   bulunmadığında NoSuchElementException fırlatılır

Element   bulunmadığında boş bir liste olarak döner herhangi bir exception fırlatmaz

Unique   bir web elementi döndürür

Eşleşen   elementleri liste şeklinde döndürür

Kullanımı  

WebElement button   = driver.findElement(By.name("//div"));

şeklindedir

Kullanımı

List<WebElement> buttons   = webdriver.findElements(By.name("//div"));

şeklindedir

Bu kadar teorik bilgiden sonra bir uygulama ile pekiştirelim. Aşağıda kullanımlarını kod içerisinde göstereceğim en alttada direkt link olarak paylaşacağım. Örneklerim automationpractise üzerinden devam edecek. POM yapısıyla uygulamayı oluşturduğum için findElement() tanımlamasını aşağıdaki gibi gerçekleştirdim.

    public void getNavbarElement(){        
    System.out.println("Element => ");        
    WebElement element = driver.findElement(findElement);        
    System.out.println("Bulunan Element => " + driver.findElement(findElement).getText());    
    }

findElements() tanımlasını ise aşağıdaki gibi gerçekleştirdim.

public void getNavbarElements(){        
System.out.println("Elements => ");        
List<WebElement> elements = driver.findElements(findElements);        
System.out.println("Bulunan elements sayısı => " +elements.size());        
for (int i=0; i<elements.size();i++){            
System.out.println(i+". Elements textleri : " + elements.get(i).getText());        
}}

Daha sonra testi çalıştırdığımızda çıktılar ise aşağıdaki gibi olmaktadır.

1.png

Dosyalar

FindElementnFindElements.rar


Umarım ilginizi çekmiştir, eğer ki konu hakkında sizleri en azından fikir sahibi yapabildiysem ne mutlu, şimdilik görüşmek dileğiyle sağlıkla kalın.


Etiketler : [ 4 ] Selenium, Java, findElement, findElements,

Linked In
Giriş yap

Bu başlıkta herhangi bir yorum bulunmamaktadır