Selenium Test Otomasyonu için Web Sitesinden Element Bulma

AvsarYagmur
Delivery Hero Tech Hub
2 min readNov 9, 2021

Merhaba,

Bu yazımda bir web sitesini test ederken kullanacağımız UI elementlerimizi nasıl bulacağımızı örnekler ile anlatacağım. Bu süreçte testlerim için https://www.yemeksepeti.com/istanbul adresini ve Google Chrome browser kullandım.

Web sitesi üzerinde, bulmak istenilen elementin üzerine sağ tıklayarak inspect/düzenle/incele denilir. Böylece HTML kodlarının görülebildiği Elements seçeneği açılacaktır.

İnspect/İncele

Elements alanında yazan kodların üzerine mouse ile gelindiğinde kod ve belirttiği alan mavi renk ile vurgulanır.

Elements

Elements alanında bulunan kare içinde ok şeklindeki icona tıklanarak da seçilmek istenen alana ait kod parçacığı bulunabilir.

Selenium ile Elementlerin Tanımlanması

HTML kodları ve Selenium kodları aşağıda örneklendirilmiştir.

Taslak:

HTML kod parçası
----
Selenium kodları

ID ile Element Bulma

<input type="text" class="form-control" name="UserName" id="UserName" value="">
----
IWebElement username = driver.FindElement(By.Id("UserName"));

Name ile Element Bulma

< input type = "password" class="form-control" name="Password" id="password" value="">
----
IWebElement password = driver.FindElement(By.Name("Password"));

LinkText ile Element Bulma

< a href = "/istanbul-uye-ol" data - yslinktracking = "anasayfa:login_formu:uye_ol" >Yeni Üyelik!</ a >
----
IWebElement createNewAccount= driver.FindElement(By.LinkText("Yeni Üyelik!"));

CSS Path veya XPath ile Element Bulma

Inspect üzerinden id ya da name ile elementi bulamadığımız durumlarda tercih edeceğimiz iki farklı konum belirleyici mevcut. (CSS Selector ve Xpath)

HTML kodu üzerinde sağ tıklayarak Copy denir. Açılan pencerede Copy selector ya da Copy XPath seçilerek UI element kopyalanmış olur.

IWebElement loginBtnWithCSSPath = driver.FindElement(By.CssSelector("#ys-fastlogin-button"));IWebElement loginBtnWithXPath = driver.FindElement(By.XPath("//*[@id='ys-fastlogin-button']"));

Href Kullanarak Element Bulma

< a href = "/sifremi-unuttum" data - yslinktracking = "anasayfa:login_formu:sifremi_unuttum" > Şifremi Unuttum </ a >
----
IWebElement resetPassword = driver.FindElement(By.XPath("//a[@href ='/sifremi-unuttum']"));

Umarım size yardımcı olabilmişimdir. Devamında görüşürüz :)

Sağlıcakla kalın…

--

--