Takip et

Selenium’da Dinamik XPath’ler Nasıl Yazılır ve Kullanılır? [Taktiklerle]

Selenium’da Dinamik XPath’ler Nasıl Yazılır ve Kullanılır? [Taktiklerle]

Selenium, web uygulamaları için otomasyon testleri yazmak için kullanılan popüler bir araçtır. Selenium, web sayfalarındaki unsurlara erişmek için XPath gibi çeşitli locater’lar kullanır. XPath, bir web sayfasındaki herhangi bir unsuru tanımlamak için kullanılan bir dildir. Ancak bazı durumlarda, dinamik olarak değişen unsurlar için XPath oluşturmak zor olabilir. Bu makalede, Selenium’da dinamik XPath’lerin nasıl yazılacağı ve kullanılacağı hakkında detaylı bir rehber sunacağız.

Dinamik XPath Nedir?

Dinamik XPath’ler, sayfadaki bir unsurun ID’si veya class adı gibi öznitelik değerleri değişebilen XPath’lerdir. Örneğin, bir ürün listesindeki her ürünün benzersiz bir ID’si olabilir, ancak bu ID’ler her seferinde farklı olabilir. Bu nedenle, bu ürünlere ulaşmak için statik bir XPath kullanılamaz. Dinamik XPath’ler, bu gibi durumlarda unsurları tanımlamak için kullanılan esnek bir çözümdür.

Dinamik XPath’ler Neden Kullanılır?

Dinamik XPath’ler kullanmanın birçok nedeni vardır. Bunlardan bazıları:

  • Sayfa Yapısındaki Değişiklikler: Web sitesinin yapısı değiştiğinde, statik XPath’ler artık çalışmayabilir. Dinamik XPath’ler, sayfa yapı değişikliklerine uyum sağlayarak testlerin kesintisiz bir şekilde çalışmasını sağlar.
  • Dinamik Veriler: Bir web sitesindeki bazı veriler zamanla değişebilir. Örneğin, bir ürün sayfasındaki fiyat veya stok durumu dinamik olabilir. Dinamik XPath’ler, bu gibi dinamik verilerdeki değişikliklerden bağımsız olarak unsurlara erişmeyi sağlar.
  • Geliştirilmiş Esneklik: Dinamik XPath’ler, testlerin çeşitli web sayfalarında çalışabilmesini sağlar. Bu, testlerin daha esnek ve sürdürülebilir olmasına yardımcı olur.

Dinamik XPath’ler Nasıl Yazılır?

Dinamik XPath’ler yazarken, aşağıdaki taktikleri kullanabilirsiniz:

1. Göreli XPath’ler Kullanın

Göreli XPath’ler, belirli bir referans noktasından itibaren unsurlara ulaşmak için kullanılır. Örneğin, aşağıdaki XPath, bir ürün listesindeki ilk ürünün adını bulmak için kullanılabilen bir göreceli XPath’dir:

“`html
//div[@class=’product-list’]/div[1]/h3
“`

Bu XPath, ‘product-list’ sınıfına sahip bir div’in altındaki ilk div’in içindeki h3 etiketini arar. Bu, ürünlerin ID’si gibi unsurları dinamik olarak değişen bir sayfada bile çalışacaktır.

2. Öznitelik Değerlerini Kullanın

Dinamik XPath’ler oluşturmak için, öznitelik değerleri kullanılabilir. Örneğin, aşağıdaki XPath, ‘product-title’ özniteliği ‘T-Shirt’ değerine sahip bir span etiketini bulmak için kullanılır:

“`html
//span[@product-title=’T-Shirt’]
“`

Bu XPath, ‘product-title’ özniteliğinin değeri değişse bile çalışacaktır. Sadece öznitelik adı aynı kalmalıdır.

3. ‘contains()’ Fonksiyonunu Kullanın

Dinamik XPath’ler oluşturmak için, ‘contains()’ fonksiyonu kullanılabilir. Bu fonksiyon, bir öznitelik değerinin belirli bir metin parçasını içerip içermediğini kontrol eder. Örneğin, aşağıdaki XPath, ‘title’ özniteliği ‘Product’ metnini içeren bir link etiketini bulmak için kullanılır:

“`html
//a[contains(@title, ‘Product’)]
“`

Bu XPath, ‘title’ özniteliğinin değeri değişse bile çalışacaktır. Sadece ‘Product’ metni öznitelik değerinin içinde kalmalıdır.

4. ‘starts-with()’ Fonksiyonunu Kullanın

Dinamik XPath’ler oluşturmak için, ‘starts-with()’ fonksiyonu kullanılabilir. Bu fonksiyon, bir öznitelik değerinin belirli bir metin parçası ile başlayıp başlamadığını kontrol eder. Örneğin, aşağıdaki XPath, ‘id’ özniteliği ‘product_’ ile başlayan bir div etiketini bulmak için kullanılır:

“`html
//div[starts-with(@id, ‘product_’)]
“`

Bu XPath, ‘id’ özniteliğinin değeri değişse bile çalışacaktır. Sadece ‘id’ özniteliği ‘product_’ ile başlamalıdır.

5. ‘ends-with()’ Fonksiyonunu Kullanın

Dinamik XPath’ler oluşturmak için, ‘ends-with()’ fonksiyonu kullanılabilir. Bu fonksiyon, bir öznitelik değerinin belirli bir metin parçası ile bitip bitmediğini kontrol eder. Örneğin, aşağıdaki XPath, ‘class’ özniteliği ‘_item’ ile biten bir div etiketini bulmak için kullanılır:

“`html
//div[ends-with(@class, ‘_item’)]
“`

Bu XPath, ‘class’ özniteliğinin değeri değişse bile çalışacaktır. Sadece ‘class’ özniteliği ‘_item’ ile bitmelidir.

Dinamik XPath’ler Nasıl Kullanılır?

Dinamik XPath’ler, Selenium’da çeşitli yöntemlerle kullanılabilir. Bunlardan bazıları:

1. findElement() Yöntemi

findElement() yöntemi, bir web sayfasında belirli bir unsuru bulmak için kullanılır. Dinamik bir XPath’yi findElement() yöntemine parametre olarak geçirebilirsiniz. Örneğin, aşağıdaki kod, ‘product-title’ özniteliği ‘T-Shirt’ değerine sahip bir span etiketini bulur:

“`java
WebElement element = driver.findElement(By.xpath(“//span[@product-title=’T-Shirt’]”));
“`

2. findElements() Yöntemi

findElements() yöntemi, bir web sayfasında belirli bir kritere uyan tüm unsurları bulmak için kullanılır. Dinamik bir XPath’yi findElements() yöntemine parametre olarak geçirebilirsiniz. Örneğin, aşağıdaki kod, ‘product-list’ sınıfına sahip bir div’in içindeki tüm h3 etiketlerini bulur:

“`java
List elements = driver.findElements(By.xpath(“//div[@class=’product-list’]/div/h3”));
“`

Dinamik XPath’ler İçin İpuçları

Dinamik XPath’ler kullanırken, aşağıdaki ipuçlarını göz önünde bulundurmanız gerekir:

  • XPath’lerinizi Açıklayıcı Yapın: XPath’lerinizin okunabilir ve anlaşılır olduğundan emin olun. Bu, hata ayıklamayı ve XPath’lerinizi sürdürmeyi kolaylaştıracaktır.
  • Mümkün Olduğunca Göreli XPath’ler Kullanın: Göreli XPath’ler, statik XPath’lerden daha esnektir ve sayfa yapı değişikliklerine karşı daha az hassastır.
  • XPath’lerinizi Test Edin: XPath’lerinizi her zaman farklı web sayfalarında ve farklı tarayıcılarda test edin. Bu, XPath’lerin doğru çalıştığından emin olmanıza yardımcı olacaktır.
  • XPath’lerinizin Performansını Optimize Edin: Çok karmaşık XPath’ler, web sayfalarında performans sorunlarına yol açabilir. Mümkün olduğunca basit ve etkili XPath’ler oluşturmaya çalışın.

Dinamik XPath’lere Alternatifler

Dinamik XPath’ler her zaman en iyi çözüm olmayabilir. Alternatif locater’lar şunlardır:

  • CSS Seçiciler: CSS seçiciler, XPath’lere göre daha kısa ve daha anlaşılır olabilir. Ancak, CSS seçiciler XPath’lerden daha az esnektir.
  • JavaScript: JavaScript, dinamik unsurlara erişmek için kullanılabilir. Bu, XPath’lerden daha fazla esneklik sağlar, ancak daha karmaşık olabilir.

Sonuç

Dinamik XPath’ler, Selenium’da otomasyon testleri yazarken dinamik unsurlara erişmek için kullanılabilen güçlü bir araçtır. Bu makalede, dinamik XPath’lerin nasıl yazılacağı ve kullanılacağı hakkında detaylı bir rehber sunulmuştur. Dinamik XPath’ler kullanarak, testleriniz daha esnek, sürdürülebilir ve güvenilir hale getirilebilir.

Dinamik XPath’ler hakkında daha fazla bilgi edinmek için fatihsoysal.com adresini ziyaret edebilirsiniz.

#Etiketler: Selenium, XPath, Dinamik XPath, Otomasyon Testleri, Web Otomasyonu, Test Otomasyonu, Web Sayfası Otomasyonu, Selenium Webdriver,

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık