Selenium Test Otomasyonu için Web Sitesinden Element Bulma
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.
Elements alanında yazan kodların üzerine mouse ile gelindiğinde kod ve belirttiği alan mavi renk ile vurgulanır.
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…