Selenuim java kullanarak findElement() ve findElements() kullanımı ve farkları hakkında bir blog.
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.
Dosyalar
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,
Giriş yap |
Bu başlıkta herhangi bir yorum bulunmamaktadır |