HTML tablolarında bulunan öğelere (genellikle metinlere) erişmemiz gereken zamanlar vardır. Ancak, bir web tasarımcısının tablodaki belirli bir hücreye bir kimlik veya ad niteliği sağlaması çok nadirdir. Bu nedenle, "By.id ()", "By.name ()" veya "By.cssSelector ()" gibi olağan yöntemleri kullanamayız. Bu durumda, en güvenilir seçenek "By.xpath ()" yöntemini kullanarak bunlara erişmektir.
"Dördüncü hücre" metnini içeren hücrenin iç metnini almak için XPath kullanacağız.
Adım 1 - Üst Öğeyi Ayarlayın (tablo)
WebDriver'daki XPath konum belirleyicileri her zaman çift eğik çizgi "//" ile başlar ve ardından ana öğe ile devam eder . Tablolarla uğraştığımız için, ana öğe her zaman
etiketi olmalıdır. Bu nedenle, XPath bulucumuzun ilk bölümü "// tablo" ile başlamalıdır.
Adım 2 - Alt öğeleri ekleyin
'nun hemen altındaki öğe
dir, bu nedenle
,
öğesinin "çocuğu" olduğunu söyleyebiliriz. Ayrıca
,
öğesinin "ebeveynidir". XPath'teki tüm alt öğeler, aşağıda gösterilen kod gibi bir eğik çizgi "/" ile ayrılmış olarak üst öğelerinin sağına yerleştirilir.
Adım 3 - Tahminleri Ekleyin
öğesi iki
etiketi içerir. Artık bu iki
etiketinin
etiketinin "çocukları" olduğunu söyleyebiliriz. Sonuç olarak,
öğesinin her iki
öğesinin de ebeveyni olduğunu söyleyebiliriz.
Çıkarabileceğimiz başka bir şey de iki
öğesinin kardeş olmasıdır. Kardeşler, aynı ebeveyne sahip olan çocuk unsurları ifade eder .
Erişmek istediğimiz
'ye ulaşmak için ("dördüncü hücre" metnini içeren), ilk önce ikinci
' ye erişmeliyiz, birinci değil. Basitçe "// table / tbody / tr" yazarsak, ilk
etiketine erişmiş oluruz.
Öyleyse, ikinci
'ye nasıl erişeceğiz o zaman? Bunun cevabı Predicates kullanmaktır .
Öngörüler, bir alt öğeyi kardeşlerinden ayıran bir çift köşeli parantez "[]" içine alınmış sayılar veya HTML nitelikleridir . Erişmemiz gereken
ikincisi olduğundan, yüklem olarak "[2]" kullanacağız.
Herhangi bir yüklem kullanmazsak, XPath ilk kardeşe erişecektir. Bu nedenle, bu XPath kodlarından birini kullanarak ilk
'ye erişebiliriz.
Adım 4 - Uygun Dayanakları Kullanarak Başarılı Alt Öğeleri Ekleyin
Erişmemiz gereken bir sonraki öğe, ikinci
. 2. ve 3. adımlardan öğrendiğimiz ilkeleri uygulayarak, XPath kodumuzu aşağıda gösterilen gibi sonlandıracağız.
Artık doğru XPath bulucuya sahip olduğumuza göre, istediğimiz hücreye zaten erişebilir ve aşağıdaki kodu kullanarak iç metnini alabiliriz. Yukarıdaki HTML kodunu C Sürücünüze "newhtml.html" olarak kaydettiğinizi varsayar.
Yukarıda tartışılan aynı ilkeler iç içe geçmiş tablolar için geçerlidir. İç içe geçmiş tablolar, başka bir tablo içinde yer alan tablolardır . Aşağıda bir örnek gösterilmiştir.
"// ebeveyn / çocuk" kullanarak "4-5-6" metinli hücreye erişmek ve önceki bölümdeki kavramları tahmin etmek için aşağıdaki XPath kodunu bulabilmeliyiz.
Aşağıdaki WebDriver kodu, eriştiğimiz hücrenin iç metnini alabilmelidir.
Aşağıdaki çıktı, iç tabloya başarıyla erişildiğini doğrular.
Nitelikleri Tahminler Olarak Kullanma
Öğe, HTML kodunun derinliklerine, yüklem için kullanılacak sayının belirlenmesi çok zor olacak şekilde yazılırsa, bunun yerine o öğenin benzersiz özelliğini kullanabiliriz.
Aşağıdaki örnekte, "New York'tan Chicago'ya" hücresi, Mercury Tours ana sayfasının HTML kodunun derinliklerine yerleştirilmiştir.
Bu durumda, dayanak olarak tablonun benzersiz özelliğini (genişlik = "270") kullanabiliriz. Öznitelikler, @ simgesi önekine eklenerek yüklemler olarak kullanılır . Yukarıdaki örnekte, "New York'tan Chicago'ya" hücresi dördüncü
'nin ilk
bölümünde yer almaktadır ve bu nedenle XPath'imiz aşağıda gösterildiği gibi olmalıdır.
XPath kodunu Java'ya koyduğumuzda, By.xpath () dizgesinin zamanından önce sonlandırılmaması için "270" in her iki tarafındaki çift tırnak işaretleri için geriye eğik çizgi "\" kaçış karakterini kullanmamız gerektiğini unutmayın. .
Artık aşağıdaki kodu kullanarak bu hücreye erişmeye hazırız.
Bir öğenin numarası veya özniteliğinin elde edilmesi son derece zor veya imkansızsa, XPath kodunu oluşturmanın en hızlı yolu Öğeyi Denetle'yi kullanmaktır.
Mercury Tours ana sayfasından aşağıdaki örneği inceleyin.
Aşama 1
XPath kodunu almak için Firebug kullanın.
Adım 2
İlk "tablo" üst öğesini bulun ve solundaki her şeyi silin.
Aşama 3
Kodun kalan kısmının önüne çift eğik çizgi "//" koyun ve WebDriver kodunuza kopyalayın.
Aşağıdaki WebDriver kodu, eriştiğimiz öğenin iç metnini başarıyla alabilecektir.
By.xpath () genellikle tablo öğelerine erişmek için kullanılır.
Öğe, HTML kodunun derinliklerine, yüklem için kullanılacak sayının belirlenmesi çok zor olacak şekilde yazılırsa, bunun yerine o öğenin benzersiz özelliğini kullanabiliriz.
Öznitelikler, @ sembolü önekine eklenerek yüklemler olarak kullanılır.