Selenium Yer Bulucular(Locators) Nelerdir?
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
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🌸