Ana içeriğe atla

Selenium WebDriver ile Web Sayfasındaki Tablo Elementlerini Bulma

Basit Tablo
Yandaki tabloda "fourth cell" yazan satırı test kodumuzda XPath kullanarak bulmaya çalışacağız. Herhangi belirgin bir attribute u olmayan basit tablolarda kendimiz xpath değerini  aşağıdaki gibi yazabiliriz.

//table/tbody/tr[2]/td[2]

Tablo, her zaman "parent"olan table değeri ile başlar ve xpath kodunun başına da her zaman // konur. Daha sonra "table" dan sonra onun alt elemanı(child) olan "tbody" tek slash ile "/" sağına yazılır. "Fourth cell" tabloda tbody parent ının 2. tr ve 2. td sinde olduğu için tr[2] ve td[2] yazmamız gerekir. Eğer 2 sayısını belirtmezseniz; hem tr tag inin hem de td tag inin ilk elementini getirir yani sonuçta "first cell" i elde etmiş olursunuz.


*****************************************************

İç içe Tablo
Bu tabloda görüldüğü gibi iç içe 2 tablo eklenmiş. Burada da "4-5-6" değerini bulmak istersek aşağıdaki kodu kullanmalıyız. Yani ilk tablonun 2. satır ve sütununa yerleştirilen 2. tablonun ilk satırının 2. sütunundaki değeri getirmesini bekliyoruz.

//table/tbody/tr[2]/td[2]/table/tbody/tr/td[2]

xpath kodunu kullanmamız gerekir.

//table ilk tablo parent ını gösterir. Sağındakiler onun altında olduğu için / ile devam eder.

/tbody table ın bir alt elementi

/tr[2] ,  aradığımız element 2. tr de olduğu için böyle yazılır.

/td[2] , aradığımız element 2. td de olduğu için böyle yazılır.

/table , ilk tablonun içindeki tabloyu belirtiyor.

/tbody , içerdeki tablonun alt elementi

/tr , ilk tr yi gösterir

/td[2] , 2. td yi belirtir.

******************************************************

Derin Tablo


Burada tablo çok derinde olduğu için aranılan elementin tablosunun belirgin bir değerini kullanacağız o da "table width".

//table[@width=\"270\"]/tbody/tr[4]/td

Burada "width"i 270 olan tablonun 4. satırındaki değeri getirmesini istiyoruz.

***********************************************

Eğer aradığınız elementin yazılmayacak kadar çok parent vs si varsa F12 ye basıp "Copy XPath" i tıklayın. Kopyalanan kodu bir yere yapıştırın ve üzerinde aşağıdaki örnekteki gibi düzenlemeler yapın.


table kısmına kadar olan kısmı baştan silin. table 'ın önüne // ekleyin ve XPath kodunu kullanın.

xpath("//table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td[1]/table[2]/tbody/tr[3]/td[2]/font")

Yorumlar