XPath girişi Selenium: Öğretici

XPath girişi Selenium

XPath nedir? Selenium?

XPath girişi Selenium sayfanın HTML yapısında gezinmek için kullanılan bir XML yoludur. XML yol ifadesini kullanarak bir web sayfasındaki herhangi bir öğeyi bulmaya yönelik bir sözdizimi veya dildir. XPath, HTML DOM yapısını kullanarak bir web sayfasındaki herhangi bir öğenin konumunu bulmak için hem HTML hem de XML belgeleri için kullanılabilir.

In Selenium Otomasyonda, elemanlar id, sınıf, isim vb. genel konum belirleyiciler tarafından bulunamazsa, web sayfasındaki bir elemanı bulmak için XPath kullanılır.

Bu eğitimde, yenileme veya herhangi bir işlem sırasında nitelikleri dinamik olarak değişen karmaşık veya dinamik elemanları bulmak için Xpath ve farklı XPath ifadelerini öğreneceğiz.

XPath Söz Dizimi

XPath, web sayfasında yer alan öğenin yolunu içerir. XPath oluşturmak için standart XPath sözdizimi şöyledir.

Xpath=//tagname[@attribute='value']

Selenium'daki XPath'ın temel formatı aşağıda ekran görüntüsü ile açıklanmaktadır.

XPath Söz Dizimi
XPath'ın Temel Formatı
  • // : Geçerli düğümü seçin.
  • Etiket adı: Belirli düğümün etiket adı.
  • @: Özellik seçin.
  • Özellik: Düğümün öznitelik adı.
  • Değer: Özelliğin değeri.

Öğeyi web sayfalarında doğru bir şekilde bulmak için farklı konum belirleyici türleri vardır:

XPath Bulucuları Web sayfasında farklı öğeleri bulun
ID Öğeyi öğenin kimliğine göre bulmak için
Sınıf adı Öğeyi, öğenin Sınıf adına göre bulmak için
İsim Öğeyi öğe adına göre bulmak için
bağlantı metni Öğeyi bağlantı metnine göre bulmak için
XPath Dinamik öğeyi bulmak ve web sayfasının çeşitli öğeleri arasında geçiş yapmak için XPath gereklidir
CSS yolu CSS yolu ayrıca adı, sınıfı veya kimliği olmayan öğeleri de bulur.

X Yolu Türleri

İki tür XPath vardır:

1) Mutlak XPath

2) Göreceli XPath

Mutlak XPath

Bu, öğeyi bulmanın doğrudan yoludur, ancak mutlak XPath'ın dezavantajı, öğenin yolunda herhangi bir değişiklik yapılırsa XPath'ın başarısız olmasıdır.

XPath'ın temel özelliği, tek eğik çizgiyle (/) başlamasıdır; bu, öğeyi kök düğümden seçebileceğiniz anlamına gelir.

Aşağıda, aşağıdaki ekranda gösterilen öğenin mutlak Xpath ifadesinin örneği bulunmaktadır.

NOT: Aşağıdaki XPath alıştırmasını bu konuda uygulayabilirsiniz https://demo.guru99.com/test/selenium-xpath.html

Tıkla okuyun videoya erişilemiyorsa

Mutlak XPath:

/html/body/div[2]/div[1]/div/h4[1]/b/html[1]/body[1]/div[2]/div[1]/div[1]/h4[1]/b[1]

Mutlak XPath
Mutlak XPath

Göreceli Xpath

Göreceli Xpath HTML DOM yapısının ortasından başlar. Çift eğik çizgi (//) ile başlar. Web sayfasındaki herhangi bir yerdeki öğeleri arayabilir, yani uzun bir xpath yazmaya gerek yoktur ve HTML DOM yapısının ortasından başlayabilirsiniz. Kök öğeden tam bir yol olmadığı için Göreli Xpath her zaman tercih edilir.

Aşağıda, aşağıdaki ekranda gösterilen aynı öğenin göreceli XPath ifadesinin örneği bulunmaktadır. Bu, XPath tarafından öğe bulmak için kullanılan yaygın formattır.

Tıkla okuyun videoya erişilemiyorsa

Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]

Göreli XPath
Göreli XPath

XPath eksenleri nelerdir?

XPath Eksenleri, geçerli bağlam düğümünden XML belgesindeki farklı düğümleri arar. XPath Eksenleri, normal XPath yöntemiyle ID, Sınıf Adı, Ad vb. olmadan mümkün olmayan dinamik elemanları bulmak için kullanılan yöntemlerdir. Selenium Çeşitli öznitelik ve koşullara göre dinamik elemanları tanımlamak ve yerleştirmek için Contains, AND, Absolute XPath ve Relative XPath gibi çeşitli yöntemler içerir.

Eksen yöntemleri, yenileme veya diğer işlemler sırasında dinamik olarak değişen öğeleri bulmak için kullanılır. Yaygın olarak kullanılan birkaç eksen yöntemi vardır. Selenium Web sürücüsü çocuk, ebeveyn, ata, kardeş, önceki, kendisi vb. gibi.

Dinamik XPath Nasıl Yazılır Selenium Web Sürücüsü

1) Temel XPath

XPath ifadesi, aşağıdaki niteliklere göre düğümleri veya düğüm listesini seçer: Kimlik, Ad, Sınıf Adı, vb. aşağıda gösterildiği gibi XML belgesinden.

Xpath=//input[@name='uid']

İşte sayfaya erişim için bir bağlantı https://demo.guru99.com/test/selenium-xpath.html

Temel XPath
Temel XPath

Bazı daha temel xpath ifadeleri:

Xpath=//input[@type='text']
Xpath=//label[@id='message23']
Xpath=//input[@value='RESET']
Xpath=//*[@class='barone']
Xpath=//a[@href='https://demo.guru99.com/']
Xpath=//img[@src='//guru99.com/images/home/java.png']

2) İçerir()

Container(), XPath ifadesinde kullanılan bir yöntemdir. Oturum açma bilgileri gibi herhangi bir özelliğin değeri dinamik olarak değiştiğinde kullanılır.

İçerme özelliği, aşağıdaki XPath örneğinde gösterildiği gibi kısmi metin içeren öğeyi bulma yeteneğine sahiptir.

Bu örnekte, özelliğin yalnızca kısmi metin değerini kullanarak öğeyi tanımlamaya çalıştık. Aşağıdaki XPath ifadesinde, gönder düğmesi yerine kısmi değer 'sub' kullanılmıştır. Elemanın başarıyla bulunduğu gözlemlenebilir.

'Tür'ün tam değeri 'gönder'dir ancak yalnızca 'alt' kısmi değerini kullanır.

Xpath=//*[contains(@type,'sub')]

'name'nin tam değeri 'btnLogin'dir ancak yalnızca kısmi 'btn' değerini kullanır.

Xpath=//*[contains(@name,'btn')]

Yukarıdaki ifadede aşağıdaki ekran görüntüsünde görüldüğü gibi 'name' özelliğini nitelik, 'btn' değerini ise kısmi değer olarak aldık. Bu, 'name' özniteliği 'btn' ile başladığından 2 öğeyi (LOGIN & RESET) bulacaktır.

İçerir()

Benzer şekilde aşağıdaki ifadede 'id'yi nitelik, 'message'ı ise kısmi değer olarak aldık. Bu, 'id' özelliği 'message' ile başladığından 2 öğe bulacaktır ('Kullanıcı Kimliği boş olmamalıdır' ve 'Şifre boş olmamalıdır').

Xpath=//*[contains(@id,'message')]

İçerir()

Aşağıdaki ifadede, aşağıdaki ekran görüntüsünde gösterildiği gibi bağlantının “metin”ini nitelik olarak, “burayı” ise kısmi değer olarak aldık. Bu, 'burada' metnini görüntülerken bağlantıyı ("burada") bulacaktır.

Xpath=//*[contains(text(),'here')]
Xpath=//*[contains(@href,'guru99.com')]

İçerir()

3) VEYA ve VE'yi kullanma

OR ifadesinde, 1. koşulun VEYA 2. koşulun doğru olması şeklinde iki koşul kullanılır. Ayrıca herhangi bir koşulun veya her ikisinin birden doğru olması durumunda da geçerlidir. Öğeyi bulmak için herhangi bir koşulun doğru olması gerektiği anlamına gelir.

Aşağıdaki XPath ifadesinde tek koşulu veya her iki koşulu da doğru olan elemanları tanımlar.

Xpath=//*[@type='submit' or @name='btnReset']

Her iki öğeyi de, 'type' niteliğine sahip “LOGIN” öğesi ve 'name' niteliğine sahip “RESET” öğesi olarak vurgulayın.

VEYA & VE'yi kullanma

AND ifadesinde iki koşul kullanılır, öğeyi bulmak için her iki koşulun da doğru olması gerekir. Herhangi bir koşulun yanlış olması durumunda öğe bulunamaz.

Xpath=//input[@type='submit' and @name='btnLogin']

Aşağıdaki ifadede, hem 'type' hem de 'name' özelliğine sahip olduğundan 'LOGIN' öğesi vurgulanıyor.

VEYA & VE'yi kullanma

4) Xpath İle Başlar

XPath () ile başlar öznitelik değeri yenileme sırasında veya web sayfasındaki diğer dinamik işlemlerle değişen web öğesini bulmak için kullanılan bir işlevdir. Bu yöntemde özniteliğin başlangıç ​​metni eşleştirilerek öznitelik değeri dinamik olarak değişen öğe bulunur. Ayrıca öznitelik değeri statik olan (değişmeyen) öğeleri de bulabilirsiniz.

Örneğin -: Belirli bir öğenin kimliğinin aşağıdaki gibi dinamik olarak değiştiğini varsayalım:

Kimlik =” mesaj12″

Kimlik =” mesaj345″

Kimlik =” mesaj8769″

vb. ancak başlangıçtaki metin aynı. Bu durumda Start-with ifadesini kullanıyoruz.

Aşağıdaki ifadede, “mesaj” ile başlayan bir kimliğe sahip iki öğe bulunmaktadır (yani, 'Kullanıcı Kimliği boş olmamalıdır' ve 'Şifre boş olmamalıdır'). Aşağıdaki örnekte XPath, 'ID'si 'message' ile başlayan elemanı bulur.

Xpath=//label[starts-with(@id,'message')]

XPath şununla başlar:

5) XPath Metin() İşlevi

MKS XPath metni () işlevi Bir web öğesinin metnine dayalı olarak öğeleri bulmak için kullanılan Selenium web sürücüsünün yerleşik bir işlevidir. Tam metin öğelerinin bulunmasına yardımcı olur ve öğelerin metin düğümleri kümesi içindeki yerini belirler. Yerleştirilecek öğeler string biçiminde olmalıdır.

Bu ifadede text fonksiyonu ile aşağıda gösterildiği gibi tam metin eşleşmesi olan elemanı buluyoruz. Bizim durumumuzda “UserID” metnini içeren öğeyi buluyoruz.

Xpath=//td[text()='UserID']

XPath Metin() İşlevi

XPath eksen yöntemleri

Bu XPath eksen yöntemleri karmaşık veya dinamik elemanları bulmak için kullanılır. Aşağıda bu yöntemlerden bazılarını göreceğiz.

Bu XPath eksenleri yöntemini göstermek için şunları kullanacağız: Guru99 banka demo sitesi.

1) Takip etmek

Aşağıdaki ekranda gösterildiği gibi geçerli düğümün ( ) [ UserID giriş kutusu geçerli düğümdür] belgesindeki tüm öğeleri seçer.

Xpath=//*[@type='text']//following::input

Takip etme

"Aşağıdaki" eksen kullanılarak eşleşen 3 "giriş" düğümü vardır - parola, oturum açma ve sıfırlama düğmesi. Belirli bir öğeye odaklanmak istiyorsanız aşağıdaki XPath yöntemini kullanabilirsiniz:

Xpath=//*[@type='text']//following::input[1]

XPath'ı gereksinime göre [1],[2]………… vb. koyarak değiştirebilirsiniz.

Giriş '1' olarak yapıldığında, aşağıdaki ekran görüntüsü 'Şifre' giriş kutusu elemanı olan belirli düğümü bulur.

Takip etme

2) Ata

Ata ekseni, aşağıdaki ekranda gösterildiği gibi mevcut düğümün tüm ata öğelerini (büyük ebeveyn, ebeveyn vb.) seçer.

Aşağıdaki ifadede mevcut düğümün (“ENTERPRISE TESTING” düğümü) ata elemanlarını buluyoruz.

Xpath=//*[text()='Enterprise Testing']//ancestor::div

Ata

“Ata” eksenini kullanarak eşleşen 13 “div” düğümü vardır. Belirli bir öğeye odaklanmak istiyorsanız, gereksiniminize göre 1, 2 sayısını değiştirebileceğiniz aşağıdaki XPath'ı kullanabilirsiniz:

Xpath=//*[text()='Enterprise Testing']//ancestor::div[1]

XPath'ı gereksinime göre [1], [2]………… vb. koyarak değiştirebilirsiniz.

3) Çocuk

Geçerli düğümün tüm alt öğelerini seçer (Java) aşağıdaki ekranda gösterildiği gibi.

Xpath=//*[@id='java_technologies']//child::li

Çocuk

“Çocuk” eksenini kullanarak eşleşen 71 “li” düğüm vardır. Belirli bir öğeye odaklanmak istiyorsanız aşağıdaki xpath'ı kullanabilirsiniz:

Xpath=//*[@id='java_technologies']//child::li[1]

Xpath'i gereksinime göre [1],[2]………… vb. koyarak değiştirebilirsiniz.

4) Önceki

Aşağıdaki ekranda gösterildiği gibi mevcut düğümden önce gelen tüm düğümleri seçin.

Aşağıdaki ifadede “LOGIN” butonundan önceki tüm giriş elemanlarını tanımlamaktadır. Kullanıcı kimliği hem de şifre giriş elemanı.

Xpath=//*[@type='submit']//preceding::input

önceki

“Önceki” ekseni kullanarak eşleşen 2 “giriş” düğümü vardır. Belirli bir öğeye odaklanmak istiyorsanız aşağıdaki XPath'ı kullanabilirsiniz:

Xpath=//*[@type='submit']//preceding::input[1]

Xpath'i gereksinime göre [1],[2]………… vb. koyarak değiştirebilirsiniz.

5) Takip eden kardeş

Bağlam düğümünün aşağıdaki kardeşlerini seçin. Kardeşler, aşağıdaki ekranda gösterildiği gibi geçerli düğümün aynı seviyesindedir. Geçerli düğümden sonraki öğeyi bulacaktır.

xpath=//*[@type='submit']//following-sibling::input

Takip eden kardeş

“Following-sibling” eksenini kullanarak eşleşen bir giriş düğümü.

6) Ebeveyn

Aşağıdaki ekranda gösterildiği gibi geçerli düğümün ebeveynini seçer.

Xpath=//*[@id='rt-feature']//parent::div

Ebeveyn

“Üst” eksenini kullanarak eşleşen 65 “div” düğümü vardır. Belirli bir öğeye odaklanmak istiyorsanız aşağıdaki XPath'ı kullanabilirsiniz:

Xpath=//*[@id='rt-feature']//parent::div[1]

XPath'ı gereksinime göre [1],[2]………… vb. koyarak değiştirebilirsiniz.

7) Benlik

Geçerli düğümü veya 'kendini' seçer, aşağıdaki ekranda gösterildiği gibi düğümün kendisini gösterdiği anlamına gelir.

öz

“Kendi” eksenini kullanarak bir düğüm eşleştirmesi. Kendi öğesini temsil ettiğinden her zaman yalnızca bir düğüm bulur.

Xpath =//*[@type='password']//self::input

8) Torun

Aşağıdaki ekranda gösterildiği gibi mevcut düğümün alt öğelerini seçer.

Aşağıdaki ifadede, mevcut öğenin ('Ana gövde surround' çerçeve öğesi) tüm alt öğelerini tanımlar; bu, düğümün aşağısı anlamına gelir (alt düğüm, torun düğüm, vb.).

Xpath=//*[@id='rt-feature']//descendant::a

Torun

"Alçalan" eksenini kullanarak eşleşen 12 "bağlantı" düğümü vardır. Belirli bir öğeye odaklanmak istiyorsanız aşağıdaki XPath'ı kullanabilirsiniz:

Xpath=//*[@id='rt-feature']//descendant::a[1]

XPath'ı gereksinime göre [1],[2]………… vb. koyarak değiştirebilirsiniz.

SSS

XPath (XML Yol Dili), bir XML dosyasındaki öğeler ve öznitelikler arasında gezinmek için kullanılır. XML veya HTML belgesi. Belirli düğümleri tanımlamaya ve almaya yardımcı olur, bu da onu web kazımada vazgeçilmez kılar.pingXML veri işleme ve otomatik test araçları gibi Selenium web öğelerini bulmak için.

Kimlik veya sınıf adı gibi daha basit konum belirleyicilerle kolayca tanımlanamayan karmaşık veya dinamik olarak değişen web öğelerini bulmanız gerektiğinde XPath kullanın. Hiyerarşik yapılarda gezinmek, özniteliklere göre düğümleri seçmek ve benzersiz tanımlayıcıları olmayan öğeleri işlemek için idealdir.

XPath'deki konum belirleyiciler, bir belgenin yapısı içindeki öğeleri tanımlamak için kullanılan ifadelerdir. Öznitelikler, metin, hiyerarşi veya konum kullanarak düğümlere giden yolları belirtirler. Yaygın konum belirleyici stratejileri arasında öğeleri etiket adına, öznitelik değerlerine, kısmi eşleşmelere veya mantıksal koşul kombinasyonlarına göre seçmek yer alır.

XPath'in iki türü vardır: Mutlak XPath hem de Bağıl XPath.

  • Mutlak XPath kök düğümden başlar (örneğin, /html/body/…) ve tam yolu sağlar.
  • Göreli XPath herhangi bir düğümden başlar (örneğin, //div[@id='content']) ve daha esnek ve sürdürülebilirdir.

Tek eğik çizgi (/), kök veya geçerli düğümün hemen altındaki düğümleri seçerek mutlak bir yol sunar. Çift eğik çizgi (//), hiyerarşiden bağımsız olarak belgenin herhangi bir yerindeki düğümleri arar ve bu da tam yolu belirtmeden öğeleri bulmayı daha esnek hale getirir.

Evet, XPath büyük/küçük harfe duyarlıdır. Öğe adları, öznitelik adları ve değerler, belgede göründükleri gibi tam olarak eşleşmelidir. Örneğin, //div ve //DIV farklı şekilde ele alınır. Büyük/küçük harfe duyarsızlığı gidermek için XPath ifadelerinde translate() gibi işlevler kullanılabilir.

ÖZET

XPath'ın web sayfasında bir öğeyi bu belirli öğe üzerinde işlem yapmak için bulması gerekir.

  • İki tür selenyum XPath vardır:
    • Mutlak XPath
    • Göreli XPath
  • XPath Eksenleri, normal XPath yöntemiyle bulunması mümkün olmayan dinamik elemanları bulmak için kullanılan yöntemlerdir
  • XPath ifadesi, XML belgesindeki Kimlik, Ad, Sınıf Adı vb. gibi niteliklere dayalı olarak düğümleri veya düğüm listesini seçer.

Ayrıca Kontrol Edin: - Selenium Yeni Başlayanlar İçin Eğitim: 7 Günde WebDriver'ı Öğrenin

Bu yazıyı şu şekilde özetleyin: