WebElementi Selenium
โก Akฤฑllฤฑ รzet
WebElementi Selenium Bu yapฤฑ, her form denetimini programlanabilir bir nesne olarak temsil eder ve test uzmanlarฤฑnฤฑn findElement, sendKeys, click, clear ve submit yรถntemlerini kullanarak metin alanlarฤฑ, onay kutularฤฑ, radyo dรผฤmeleri ve gรถnderim รถฤeleriyle etkileลim kurmasฤฑnฤฑ saฤlar. Java kod รถrnekleri.

WebElementi Selenium
Formlar, web sitesi ziyaretรงilerinden bilgi toplayan temel web รถฤeleridir. Web formlarฤฑ, metin kutularฤฑ, parola alanlarฤฑ, onay kutularฤฑ, radyo dรผฤmeleri, aรงฤฑlฤฑr menรผler ve dosya giriลleri gibi farklฤฑ grafik kullanฤฑcฤฑ arayรผzรผ (GUI) kontrollerini iรงerir.
Bu eฤitim, her bir form รถฤesine nasฤฑl eriลileceฤini aรงฤฑklamaktadฤฑr. Selenium Web Sรผrรผcรผsรผ Java. Selenium her form รถฤesini WebElement nesnesi olarak kapsรผller. Bu, metin girme, dรผฤmelere tฤฑklama ve form gรถnderme gibi รถฤeleri bulmak ve bunlar รผzerinde iลlem yapmak iรงin bir API saฤlar. Aลaฤฤฑdaki bรถlรผmler, her form รถฤesi iรงin mevcut olan yรถntemleri kapsamaktadฤฑr.
WebElement'e giriล, findElement(), findElements()
Selenium WebDriver, basit bir form รถฤesini bir nesne olarak temsil eder. WebElement.
WebDriver, form รถฤelerini ID, Name, Class gibi web รถฤesinin farklฤฑ รถzelliklerini kullanarak tanฤฑmlar. XPathEtiket adฤฑ, CSS seรงicileri ve baฤlantฤฑ metni.
WebDriver, รถฤeleri bulmak iรงin aลaฤฤฑdaki iki WebElement yรถntemini sunar:
- findElement() โ Tek bir web รถฤesini bulur ve onu WebElement olarak dรถndรผrรผr. Selenium nesne.
- findElements() โ konum belirleyici รถlรงรผtleriyle eลleลen WebElement nesnelerinin bir listesini dรถndรผrรผr.
Aลaฤฤฑdaki รถrnek, findElement() yรถntemini kullanarak bir web sayfasฤฑndaki tek bir รถฤeyi, yani bir metin alanฤฑnฤฑ, WebElement nesnesi olarak nasฤฑl alacaฤฤฑnฤฑzฤฑ gรถstermektedir. Birden fazla รถฤeyi bulmak iรงin kullanฤฑlan findElements() yรถntemi sonraki eฤitimlerde ele alฤฑnacaktฤฑr.
) 1 Adฤฑm WebElement nesneleri oluลturmak iรงin gerekli paketi iรงe aktarฤฑn.
) 2 Adฤฑm Aลaฤฤฑda gรถsterildiฤi gibi, WebDriver sฤฑnฤฑfฤฑnda bulunan findElement() yรถntemini รงaฤฤฑrarak bir WebElement nesnesi alabilirsiniz.
Selenium Giriล metni
Giriล kutularฤฑ ลu iki tรผrden birine karลฤฑlฤฑk gelir:
- Metin Alanlarฤฑ - Selenium Yazฤฑlan deฤerleri kabul eden ve girildiฤi gibi gรถrรผntรผleyen metin giriล kutularฤฑ.
- ลifre Alanlarฤฑ โ Yazฤฑlan deฤerleri kabul eden ancak hassas bilgileri gizlemek iรงin bunlarฤฑ bir dizi รถzel karakter (genellikle nokta veya yฤฑldฤฑz iลareti) olarak maskeleyen metin kutularฤฑ.
Konumlandฤฑrฤฑcฤฑlar
`findElement()` metodu, รถฤeyi gรถsteren bir konum belirleyici olan tek bir parametre alฤฑr. `By.id()`, `By.name()`, `By.xpath()` ve `By.cssSelector()` dahil olmak รผzere farklฤฑ konum belirleyiciler, `id`, `name` veya `path` gibi รถzelliklerini kullanarak sayfadaki รถฤeleri bulur.
รฤelerin kimliฤini (id), XPath'ini ve diฤer konum belirleyici deฤerlerini elde etmek iรงin FirePath gibi eklentiler kullanabilirsiniz.
รrnek siteyi kullanma https://demo.guru99.com/test/login.htmlAลaฤฤฑdaki kod, "E-posta Adresi" metin alanฤฑnฤฑ id konum belirleyicisini kullanarak, "ลifre" alanฤฑnฤฑ ise name konum belirleyicisini kullanarak bulur.
- E-posta metin alanฤฑ, kimlik numarasฤฑna gรถre bulunur.
- ลifre alanฤฑ isme gรถre bulunur.
anahtarlarฤฑ gรถnder Selenium
sendKeys() iรงinde Selenium `sendKeys()` yรถntemi, test yรผrรผtme sฤฑrasฤฑnda metin ve parola alanlarฤฑna dรผzenlenebilir iรงerik girmek iรงin kullanฤฑlฤฑr. Bu alanlar, ad, sฤฑnฤฑf ve kimlik gibi konum belirleyiciler aracฤฑlฤฑฤฤฑyla tanฤฑmlanฤฑr. Bu yรถntem, `WebElement` nesnesinde kullanฤฑlabilir. `type` yรถnteminin aksine, `sendKeys()` bir metin kutusundaki mevcut metni deฤiลtirmez.
Metin Nasฤฑl Girilir? Selenium
Metin alanlarฤฑna ve parola alanlarฤฑna metin girmek iรงin, WebElement'te bulunan sendKeys() yรถntemi kullanฤฑlฤฑr. Selenium.
Aynฤฑ รถrneฤi kullanarak https://demo.guru99.com/test/login.htmlAลaฤฤฑdaki kod parรงasฤฑ, metin alanฤฑnฤฑ ve parola alanฤฑnฤฑ bulur ve bunlara metin girer. Selenium.
- Kimlik bulucu รถzelliฤini kullanarak "E-posta Adresi" metin alanฤฑnฤฑ bulun.
- ฤฐsim bulucu รถzelliฤini kullanarak "ลifre" alanฤฑnฤฑ bulun.
- "E-posta Adresi"ne metni girin Selenium sendKeys metodu.
- sendKeys() yรถntemini kullanarak โลifreโ alanฤฑna bir ลifre girin.
Giriลteki Deฤerlerin Silinmesi Boxes
MKS aรงฤฑk() Bu yรถntem, giriล kutusunun iรงindeki metni siler. Bu yรถntem parametre gerektirmez. Aลaฤฤฑdaki kod parรงasฤฑ, E-posta veya ลifre alanlarฤฑndaki metni siler.
Selenium Dรผฤmelere tฤฑklayฤฑn
MKS Selenium Tฤฑklama dรผฤmesine click() metodu kullanฤฑlarak eriลilir.
Yukarฤฑdaki รถrnekte
- Giriล yap butonunu bulun.
- Siteye giriล sayfasฤฑndaki "Giriล Yap" dรผฤmesine tฤฑklayarak kimliฤinizi doฤrulayฤฑn.
Selenium Gรถnder Dรผฤmeleri
Gรถnder dรผฤmeleri, formun tamamฤฑnฤฑ sunucuya gรถnderir. Yukarฤฑda gรถsterildiฤi gibi WebElement รผzerinde click() yรถntemini รงaฤฤฑrabilir veya formdaki herhangi bir รถฤe รผzerinde veya gรถnder dรผฤmesinin kendisinde submit() yรถntemini kullanabilirsiniz.
`submit()` kullanฤฑldฤฑฤฤฑnda, WebDriver, รถฤenin ait olduฤu formu belirlemek iรงin DOM'a bakar ve ardฤฑndan `submit` iลlevini tetikler.
Tamamla Code
ฤฐลte รงalฤฑลan kodun tamamฤฑ.
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 ararken NoSuchElementException() hatasฤฑyla karลฤฑlaลฤฑrsanฤฑz, sรถz konusu รถฤe WebDriver'ฤฑn ona eriลtiฤi anda sayfada mevcut deฤildir.
- FirePath'i kullanarak veya Chrome'daki "รฤeyi ฤฐncele" seรงeneฤini kullanarak konum belirleyicinizi tekrar kontrol edin.
- Kodda kullanฤฑlan deฤerin, FirePath'te gรถrรผnen รถฤenin mevcut deฤerinden farklฤฑ olup olmadฤฑฤฤฑnฤฑ kontrol edin.
- Bazฤฑ รถzellikler belirli รถฤeler iรงin dinamiktir. Bir deฤer dinamik olarak deฤiลiyorsa, daha gรผvenilir ancak biraz daha karmaลฤฑk olan By.xpath() veya By.cssSelector() yรถntemlerine geรงin.
- Bazen sorun bir bekleme koลulundan kaynaklanฤฑr; WebDriver, sayfa yรผklenmesi tamamlanmadan รถnce kodu รงalฤฑลtฤฑrabilir.
- รrtรผlรผ veya aรงฤฑk beklemeleri kullanarak findElement() iลlevinden รถnce bir bekleme ekleyin.
รZET
- Aลaฤฤฑdaki tabloda, yukarฤฑda ele alฤฑnan her bir รถฤe tรผrรผne eriลmek iรงin kullanฤฑlan komutlar รถzetlenmiลtir.
| 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ฤฑn mevcut deฤerlerini temizlemek iรงin kullanฤฑlฤฑr. | |
| Baฤlantฤฑlar | Tฤฑklayฤฑn() | Baฤlantฤฑya tฤฑkladฤฑktan sonra bir sonraki komuta geรงmeden รถnce sayfa yรผklemesinin tamamlanmasฤฑnฤฑ beklemek iรงin kullanฤฑlฤฑr. |
| Dรผฤmesi Gรถnder | Sunmak() | Ana formun gรถnderim iลleyicisini tetikleyerek formu gรถndermek iรงin kullanฤฑlฤฑr. |
- WebDriver, รงoklu bir SELECT รถฤesinde birden fazla seรงeneฤin seรงilmesine olanak tanฤฑr.
- Form iรงindeki herhangi bir รถฤe รผzerinde `submit()` yรถntemini kullanabilirsiniz. WebDriver, รถฤenin ait olduฤu formun `submit` iลlevini otomatik olarak tetikler.






