WebElementi Selenium
WebElementi Selenium
Formlar, web sitesi ziyaretรงilerinden bilgi almak iรงin temel web รถฤeleridir. Web formlarฤฑ, Metin kutularฤฑ, Parola alanlarฤฑ, Onay kutularฤฑ, Radyo dรผฤmeleri, aรงฤฑlฤฑr listeler, dosya giriลleri vb. gibi farklฤฑ GUI รถฤelerine sahiptir.
Bu farklฤฑ form รถฤelerine nasฤฑl eriลeceฤimizi gรถreceฤiz. Selenium Web Sรผrรผcรผsรผ Java. Selenium her form รถฤesini WebElement nesnesi olarak kapsรผller. รฤeleri bulmak ve bunlar รผzerinde iลlem yapmak (รถrneฤin metin kutularฤฑna metin girmek, dรผฤmelere tฤฑklamak vb.) iรงin bir API saฤlar. Her form รถฤesine eriลmek iรงin kullanฤฑlabilecek yรถntemleri gรถreceฤiz.
WebElement'e giriล, findElement(), findElements()
Selenium Web Sรผrรผcรผsรผ basit bir form รถฤesini bir nesne olarak kapsรผller. WebElement.
WebDriver'ฤฑn form รถฤelerini kimlik, ad, sฤฑnฤฑf, XPath, etiket adฤฑ, CSS seรงiciler, baฤlantฤฑ metni vb. gibi Web รถฤelerinin farklฤฑ รถzelliklerine gรถre tanฤฑmlamasฤฑnฤฑ saฤlayan รงeลitli teknikler vardฤฑr.
Web Sรผrรผcรผsรผ, รถฤeleri bulmak iรงin aลaฤฤฑdaki iki WebElement yรถntemini saฤlar.
- findElement() โ tek bir web รถฤesini bulur ve WebElement olarak geri dรถner Selenium nesne.
- findElements() โ konum belirleyici รถlรงรผtleriyle eลleลen WebElement nesnelerinin bir listesini dรถndรผrรผr.
FindElement() yรถntemini kullanarak bir web sayfasฤฑndaki tek bir รถฤeyi - Metin Alanฤฑ'nฤฑ WebElement nesnesi olarak elde etmek iรงin kod parรงacฤฑklarฤฑna bakalฤฑm. Sonraki eฤitimlerde birden fazla รถฤe bulmanฤฑn findElements() yรถntemini ele alacaฤฤฑz.
) 1 Adฤฑm Web Elements nesnelerini oluลturmak iรงin bu paketi iรงe aktarmamฤฑz gerekiyor
) 2 Adฤฑm WebDriver sฤฑnฤฑfฤฑnda bulunan findElement() yรถntemini รงaฤฤฑrmamฤฑz ve bir WebElement nesnesi almamฤฑz gerekiyor.
Nasฤฑl yapฤฑldฤฑฤฤฑnฤฑ gรถrmek iรงin aลaฤฤฑya bakฤฑn.
Selenium Giriล metni
Giriล kutularฤฑ ลu iki tรผrden birine karลฤฑlฤฑk gelir:
- Metin Alanlarฤฑ- Selenium Yazฤฑlan deฤerleri kabul eden ve olduฤu gibi gรถsteren giriล metin kutularฤฑ.
- ลifre Alanlarฤฑโ Yazฤฑlan deฤerleri kabul eden ancak hassas deฤerlerin gรถrรผntรผlenmesini รถnlemek iรงin bunlarฤฑ bir dizi รถzel karakter (genellikle noktalar ve yฤฑldฤฑzlar) olarak maskeleyen metin kutularฤฑ.
Konumlandฤฑrฤฑcฤฑlar
FindElement() yรถntemi, รถฤenin konum belirleyicisi olan bir parametreyi alฤฑr. By.id(), By.name(), By.xpath(), By.CSSSelector() vb. gibi farklฤฑ konum belirleyiciler sayfadaki รถฤeleri โโโ id, name veya path vb. gibi รถzelliklerini kullanarak bulur.
รฤelerin kimliฤini, xpath vb.'ni alma konusunda yardฤฑm almak iรงin Fire path gibi eklentileri kullanabilirsiniz.
รrnek siteyi kullanma https://demo.guru99.com/test/login.html Aลaฤฤฑda, kimlik bulucuyu kullanarak โE-posta adresiโ metin alanฤฑnฤฑ ve ad bulucuyu kullanarak โลifreโ alanฤฑnฤฑ bulmak iรงin kod verilmiลtir.
- E-posta metin alanฤฑ Id tarafฤฑndan bulunur
- ลifre alanฤฑ ada gรถre bulunur
anahtarlarฤฑ gรถnder Selenium
sendkeys() iรงinde Selenium test yรผrรผtme sฤฑrasฤฑnda metin ve parola alanlarฤฑna dรผzenlenebilir iรงerik girmek iรงin kullanฤฑlan bir yรถntemdir. Bu alanlar ad, sฤฑnฤฑf, kimlik vb. gibi konum belirleyiciler kullanฤฑlarak tanฤฑmlanฤฑr. Web รถฤesinde kullanฤฑlabilen bir yรถntemdir. Tรผr yรถnteminin aksine, sendkeys() yรถntemi herhangi bir metin kutusundaki mevcut metni deฤiลtirmez.
Metin Nasฤฑl Girilir? Selenium
Metin Alanlarฤฑna ve ลifre Alanlarฤฑna metin girmek iรงin sendKeys(), WebElement'te bulunan yรถntemdir. Selenium.
Aynฤฑ รถrneฤi kullanarak https://demo.guru99.com/test/login.html sitesinde Metin alanฤฑnฤฑ ve ลifre alanlarฤฑnฤฑ ลu ลekilde bulacaฤฤฑz ve metni gireceฤiz: Selenium.
- Kimlik bulucuyu kullanarak โE-posta Adresiโ Metin alanฤฑnฤฑ bulun.
- Ad bulucuyu kullanarak โลifreโ alanฤฑnฤฑ bulun
- "E-posta Adresi"ne metni girin Selenium anahtar gรถnderme yรถntemi.
- sendKeys() yรถntemini kullanarak โลifreโ alanฤฑna bir ลifre girin.
Giriลteki Deฤerlerin Silinmesi Boxes
MKS aรงฤฑk() Bir giriล kutusundaki metni silmek iรงin kullanฤฑlan yรถntem. Bu yรถntemin parametreye ihtiyacฤฑ yokturAลaฤฤฑdaki kod parรงacฤฑฤฤฑ E-posta veya Parola alanlarฤฑndaki metni temizleyecektir
Selenium Dรผฤmelere tฤฑklayฤฑn
MKS Selenium tฤฑklama dรผฤmesine click() yรถntemi kullanฤฑlarak eriลilebilir.
Yukarฤฑdaki รถrnekte
- Oturum aรงmak iรงin dรผฤmeyi bulun
- Siteye giriล yapmak iรงin sitenin giriล sayfasฤฑndaki โGiriล Yapโ butonuna tฤฑklayฤฑn.
Selenium Gรถnder Dรผฤmeleri
Gรถnder butonlarฤฑ formun tamamฤฑnฤฑ sunucuya gรถndermek iรงin kullanฤฑlฤฑr. Click () yรถntemini yukarฤฑda yaptฤฑฤฤฑmฤฑz gibi web elemanฤฑ รผzerinde normal bir buton gibi kullanabiliriz veya submit () yรถntemini formdaki herhangi bir web elemanฤฑ รผzerinde veya gรถnder butonunun kendisinde kullanabiliriz.
submit() kullanฤฑldฤฑฤฤฑnda WebDriver, รถฤenin hangi forma ait olduฤunu รถฤrenmek iรงin DOM'yi arayacak ve ardฤฑndan gรถnderme iลlevini tetikleyecektir.
Kodu tamamla
ฤฐลte tam รงalฤฑลma kodu
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
//using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
//driver.close();
}
}
Sorun giderme
รฤeleri bulurken NoSuchElementException() ile karลฤฑlaลฤฑrsanฤฑz bu, Web sรผrรผcรผsรผnรผn sayfaya eriลtiฤi noktada รถฤenin sayfada bulunmadฤฑฤฤฑ anlamฤฑna gelir.
- Konum bulucunuzu Chrome'daki Firepath veya Inspect Element'i kullanarak tekrar kontrol edin.
- Kodda kullandฤฑฤฤฑnฤฑz deฤerin Firepath'teki รถฤenin deฤerinden farklฤฑ olup olmadฤฑฤฤฑnฤฑ ลimdi kontrol edin.
- Bazฤฑ รถzellikler birkaรง รถฤe iรงin dinamiktir. Deฤerin farklฤฑ olduฤunu ve dinamik olarak deฤiลtiฤini fark ederseniz, daha gรผvenilir ancak karmaลฤฑk yollar olan By.xpath() veya By.cssSelector() kullanmayฤฑ dรผลรผnรผn.
- Bazen bu bir bekleme sorunu da olabilir, รถrneฤin Web sรผrรผcรผsรผ kodunuzu sayfa tamamen yรผklenmeden รถnce รงalฤฑลtฤฑrdฤฑ vb.
- รrtรผlรผ veya aรงฤฑk beklemeleri kullanarak findElement() iลlevinden รถnce bir bekleme ekleyin.
รZET
- Aลaฤฤฑdaki tablo, yukarฤฑda tartฤฑลฤฑlan her รถฤe tรผrรผne eriลmeye yรถnelik komutlarฤฑ รถzetlemektedir.
| Eleman | Komuta | Aรงฤฑklama |
|---|---|---|
| Giriล Box | anahtarlarฤฑ gรถnder() | metin kutularฤฑna deฤer girmek iรงin kullanฤฑlฤฑr |
| aรงฤฑk() | metin kutularฤฑnฤฑ geรงerli deฤerlerinden temizlemek iรงin kullanฤฑlฤฑr | |
| Baฤlantฤฑlar | Tฤฑklayฤฑn() | Baฤlantฤฑya tฤฑklamak ve bir sonraki komuta geรงmeden รถnce sayfanฤฑn yรผklenmesinin tamamlanmasฤฑnฤฑ beklemek iรงin kullanฤฑlฤฑr. |
| Dรผฤmesi Gรถnder | Sunmak() |
- WebDriver, รงoklu bir SELECT รถฤesinde birden fazla seรงeneฤin seรงilmesine olanak tanฤฑr.
- Formdaki herhangi bir รถฤe รผzerinde submit() yรถntemini kullanabilirsiniz. WebDriver, o รถฤenin ait olduฤu formun gรถnderme iลlevini otomatik olarak tetikleyecektir.






