Selenium Yer Bulucular(Locators) Nelerdir?

İlke Başalak
3 min readJan 15, 2022

--

Bu yazıda Selenium Web Driver kullanarak geliştirdiğimiz test otomasyonunda kullanılan yer buluculardan bahsedeceğim.Yer bulucularını bulmak ,bulmaca çözmek kadar zevkli olmaktadır.

  • ID
  • ClassName
  • Name
  • TagName
  • LinkText
  • CssSelector
  • XPath
  • DOM Locator

Web Sayfasındaki Öğeleri Nasıl Buluruz?

1) İstediğimiz nesneye sağ tıkla ile incele(inspect) alanına tıklıyoruz. İncele(inspect) alanına tıkladıktan sonra objenin attribute’lerini göreceksiniz.Yada otomasyon yazacağımız site içerisinde klavyeden F12’ye basarak geliştirici seçeneklerine ulaşıyoruz Bu ekranı farklı bir pencerede yada sayfanızın solunda,sağında,aşağısında duracak şekilde açabilirsiniz

2)Burada ‘Elements’ tabını açıyoruz. Web sayfamızdaki bütün elementleri burada görebiliriz.

3)Elementin bilgilerinden size uygun olan locator için gerekli bilgileri alıp otomasyonunuzda bu elemente ulaşmak için kullanabilirsiniz

Inspect’e tıklanan objenin özellikleri

Yer Bulucuların Özellikleri ve Kullanımları

Selenium Web Driver’da ilgili elementleri bulabilmek için ‘findElement/findElements’ syntaxını kullanmalıyız.

1)ID

ID, web sayfasında her öğeye özgü olduğu düşünülerek öğeleri bulmanın en yaygın yoludur. Id’nin değişken olup olmadığı sayfa yenilenerek tekrar ilgili elemente ulaşıp kontrol ederek anlaşılabilir.

driver.findElement(By.id(“createacc”))

2)ClassName

ClassName locator, elementin class özelliği kullanılarak bulunmasını sağlar.

driver.findElement(By.className(“btn btn-lg btn-primary”))

3)Name:

Selenium WebDriver’daki Name locator, ID gibi kullanılabilir.

driver.findElement(By.name(“login-password”))

4)Tag Name

Selenium WebDriver’daki bu bulucu, div etiketi, etiket vb. gibi etiket adlarına sahip öğeleri tanımlamak için kullanılır.

driver.findElements(By.tagName());

Örnekler;

driver.findElements(By.tagName(a));

driver.findElements(By.tagName(div));

5)LinkText

Elementler, bağlantı metni aracılığıyla yerleştirilebilir. Aynı metnin birden çok bağlantısının bulunduğu bir senaryoda, ilk bağlantı seçilir.

Örnek element;

<a href=”https://medium.com/@ilkebasalak” target=”_blank”>Blog</a>

Elementi bulmak için linktext kullanımı;

Syntax: driver.findElement(By.linkText(“Blog”))

6)CSS Selector

Bir elementte ID ya da name ile ilgili bir bilgi yoksa veya bunlar değişken ise CSS selector ve Xpath ile elementi bulmaya çalışırız. Xpath ile karşılaştırıldığında CSS selector daha hızlı çalışmaktadır.

CSS Seçicileri çeşitli biçimlerde bulunabilir:

  • Tag ve ID
  • Tag ve Class
  • Tag ve Attribute
  • Tag, Class ve Attribute
  • Matches (Starts with, Ends with, Contains)
  • Child elementler

CSS Selectorlerin kullanım detaylarını ‘CSS Selector ve Xpath Kullanımları’ yazımda bulabilirsiniz

7)Xpath

Xpath, XML ifadelerini kullanarak web sayfasındaki öğeleri bulmaya yardımcı olur.

Xpath=//tagname[@Attribute=‘Value’]

tagname= Hedeflediğiniz elementin etiketi, örneğin bir giriş(input) etiketini ve ya bağlantı(anchor) etiketini, vb. belirtir.

attribute= ‘@‘ ön eki ve karşılık gelen değerleri ile tanımlanır. Name, ID, Class vb.olabilir.

Xpath Seçicileri çeşitli biçimlerde bulunabilir:

  • Standard Xpath
  • Contains
  • AND & OR
  • Starts-with
  • Text

Xpath Selectorlerin kullanım detaylarını ‘CSS Selector ve Xpath Kullanımları’ yazımda bulabilirsiniz

8)DOM Locator

Elementi ID ve Name yoluyla DOM’un “getElementById” ve “getElementsByName” gibi yöntemlerini kullanarak tanımlayabiliriz. GetElementById yöntemi bir kerede yalnızca bir öğeyi bulur, diğer yöntem ise bu adla bulunan bir dizi elementi sağlamak için kullanılır. Bir dizi elementin olması durumunda belirtilen spesifik bir öğeye erişmek için index kullanabiliriz.

Syntax:

document.getElementById (“id”)

document.getElementsByNames (“name”)[index]

Başka bir yazıda görüşmek üzere

Mutlu günler dilerim🌸

--

--