Selenyum - Konumlandırıcılar
Selenium WebDriver'daki öğelerin konumlandırılması, WebDriver ve WebElement sınıfı tarafından sağlanan findElement () ve findElements () yöntemlerinin yardımıyla gerçekleştirilir.
findElement (), belirtilen arama ölçütüne dayalı olarak bir WebElement nesnesi döndürür veya arama ölçütleriyle eşleşen herhangi bir öğe bulamazsa bir istisna atar.
findElements (), arama kriterleriyle eşleşen WebElement'lerin bir listesini döndürür. Hiçbir öğe bulunmazsa, boş bir liste döndürür.
Aşağıdaki tablo, Selenium WebDriver'daki öğeleri bulmak için tüm Java sözdizimini listeler.
Yöntem | Sözdizimi | Açıklama |
---|---|---|
Kimliğe göre | driver.findElement (By.id (<element ID>)) | ID özelliğini kullanarak bir öğeyi bulur |
İsimle | driver.findElement (By.name (<eleman adı>)) | Ad özniteliğini kullanarak bir öğeyi bulur |
Sınıf adına göre | driver.findElement (By.className (<element sınıfı>)) | Class özniteliğini kullanarak bir öğeyi bulur |
Etiket adına göre | driver.findElement (By.tagName (<htmlagname>)) | HTML etiketini kullanarak bir öğeyi bulur |
Bağlantı metnine göre | driver.findElement (By.linkText (<linktext>)) | Bağlantı metnini kullanarak bir bağlantı bulur |
Kısmi bağlantı metnine göre | driver.findElement (By.partialLinkText (<linktext>)) | Bağlantının kısmi metnini kullanarak bir bağlantıyı bulur |
CSS ile | driver.findElement (By.cssSelector (<css seçici>)) | CSS seçiciyi kullanarak bir öğeyi bulur |
XPath tarafından | driver.findElement (By.xpath (<xpath>)) | XPath sorgusu kullanarak bir öğeyi bulur |
Konumlandırıcıların Kullanımı
Şimdi konum belirleme yöntemlerinin her birinin pratik kullanımını anlayalım: https://www.calculator.net
Kimliğe göre
Burada ID'ler yardımı ile bir nesneye erişilir. Bu durumda, metin kutusunun kimliğidir. Değerler, ID (cdensity) yardımıyla sendkeys yöntemi kullanılarak metin kutusuna girilir.
driver.findElement(By.id("cdensity")).sendKeys("10");
İsimle
Burada isimler yardımı ile bir nesneye ulaşılır. Bu durumda, metin kutusunun adıdır. Değerler, ID (cdensity) yardımıyla sendkeys yöntemi kullanılarak metin kutusuna girilir.
driver.findElement(By.name("cdensity")).sendKeys("10");
Sınıf Adına Göre
Burada bir nesneye Sınıf Adları yardımıyla erişilir. Bu durumda, WebElement'in Sınıf adıdır. Değere gettext yöntemi yardımıyla erişilebilir.
List<WebElement> byclass = driver.findElements(By.className("smalltext smtb"));
Etiket Adına Göre
Bir elemanın DOM Etiket Adı, söz konusu öğeyi WebDriver'da bulmak için kullanılabilir. Bu yöntem sayesinde tabloları işlemek çok kolaydır. Aşağıdaki koda bir göz atın.
WebElement table = driver.findElement(By.id("calctable"));
List<WebElement> row = table.findElements(By.tagName("tr"));
int rowcount = row.size();
Bağlantı Metnine Göre
Bu yöntem, eşleşen görünür metne sahip bir bağlantı öğesinin bulunmasına yardımcı olur.
driver.findElements(By.linkText("Volume")).click();
Kısmi bağlantı metnine göre
Bu yöntemler, kısmen eşleşen görünür metne sahip bir bağlantı öğesinin bulunmasına yardımcı olur.
driver.findElement(By.partialLinkText("Volume")).click();
CSS ile
CSS, web nesnesini tanımlamak için bir yöntem olarak kullanılır, ancak tüm tarayıcılar CSS kimliğini desteklemez.
WebElement loginButton = driver.findElement(By.cssSelector("input.login"));
XPath tarafından
XPath, XML yol dilinin kısaltmasıdır. Bir XML belgesinden düğümleri seçmek için bir sorgu dilidir. XPath, XML belgelerinin ağaç temsiline dayanır ve çeşitli ölçütler kullanarak düğümleri seçerek ağaçta gezinme yeteneği sağlar.
driver.findElement(By.xpath(".//*[@id = 'content']/table[1]/tbody/tr/td/table/tbody/tr[2]/td[1]/input")).sendkeys("100");