Web Tablosu Nasıl Kullanılır? Selenium
Web Tablosu Nedir? Selenium?
A Web Tablosu in Selenium veri veya bilgilerin tablo halinde gösterimi için kullanılan bir WebElement'tir. Görüntülenen veri veya bilgiler statik veya dinamik olabilir. Web tablosuna ve öğelerine, WebElement işlevleri ve bulucuları kullanılarak erişilebilir. Selenium. Bir web tablosunun tipik bir örneği, bir e-Ticaret platformunda görüntülenen ürün özellikleri olabilir.
HTML Web Tablosunu Okumak
HTML tablolarındaki öğelere (genellikle metinlere) erişmemiz gereken zamanlar vardır. Ancak bir web tasarımcısının tablodaki belirli bir hücreye kimlik veya ad niteliği sağlaması çok nadirdir. Bu nedenle “By.id()”, “By.name()” veya “By.cssSelector()” gibi alışılmış yöntemleri kullanamıyoruz. Bu durumda en güvenilir seçenek “By.xpath()” yöntemini kullanarak bunlara erişmektir.
Web Tablosu Nasıl Kullanılır? Selenium
Web tablolarını işlemek için aşağıdaki HTML kodunu göz önünde bulundurun Selenium.
Kullanacağız XPath “dördüncü hücre” metnini içeren hücrenin iç metnini almak için
Adım 1 – Ana Öğeyi Ayarlayın (tablo)
WebDriver'daki XPath konum belirleyicileri her zaman çift eğik çizgi "//" ile başlar ve ardından üst öğe gelir. Web tablolarıyla ilgilendiğimiz için Seleniumana öğe her zaman olmalıdır etiket. Çalışmamızın ilk bölümü Selenium XPath tablo bulucu bu nedenle “//table” ile başlamalıdır.
Adım 2 – Alt öğeleri ekleyin
Hemen altındaki eleman dır-dir yani şunu söyleyebiliriz "çocuğudur" . Ve ayrıca, "ebeveyni" . XPath'taki tüm alt öğeler, aşağıda gösterilen kod gibi bir eğik çizgi "/" ile ayrılarak ana öğelerinin sağına yerleştirilir.
Adım 3 – Tahminleri Ekle
öğe iki içerir Etiketler. Artık bu ikisinin olduğunu söyleyebiliriz. Etiketler şunun “çocuklarıdır”: . Sonuç olarak şunu söyleyebiliriz her ikisinin de ebeveyni elementler.
Çıkarabileceğimiz diğer bir şey de şu: unsurlar kardeştir. Kardeşler aynı ebeveyne sahip olan alt öğeleri ifade eder.
Ulaşmak için erişmek istediğimiz (“dördüncü hücre” metnine sahip olan) önce ikinci ve ilk değil. Basitçe “//table/tbody/tr” yazarsak ilk tabloya ulaşmış olacağız. etiket.
Peki ikinciye nasıl erişeceğiz? Daha sonra? Bunun cevabı kullanmaktır yüklemler.
Tahminler, bir alt öğeyi kardeşlerinden ayıran bir çift köşeli parantez “[ ]” içine alınmış sayılar veya HTML nitelikleridir. Beri erişmemiz gereken ikinci ise yüklem olarak “[2]” kullanacağız.
Herhangi bir yüklem kullanmayacaksak XPath ilk kardeşe erişecektir. Bu nedenle ilkine erişebiliriz. bu XPath kodlarından herhangi birini kullanarak.
Adım 4 – Uygun Yüklemleri 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, aşağıdaki kodu kullanarak zaten istediğimiz hücreye erişebilir ve iç metnini alabiliriz. Yukarıdaki HTML kodunu C Sürücünüze “newhtml.html” olarak kaydettiğinizi varsayar.
public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/write-xpath-table.html"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); String innerText = driver.findElement( By.xpath("//table/tbody/tr[2]/td[2]")).getText(); System.out.println(innerText); driver.quit(); } }
İç İçe Tablolara Erişim
Yukarıda tartışılan ilkelerin aynıları iç içe tablolar için de geçerlidir. İç içe tablolar, başka bir tablonun içinde yer alan tablolardır. Aşağıda bir örnek gösterilmiştir.
Bir önceki bölümdeki “//parent/child” ve yüklem kavramlarını kullanarak “4-5-6” metninin bulunduğu hücreye ulaşmak için aşağıdaki XPath kodunu bulabilmemiz gerekiyor.
Aşağıdaki WebDriver kodu, erişmekte olduğumuz hücrenin iç metnini alabilmelidir.
public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/accessing-nested-table.html"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); String innerText = driver.findElement( By.xpath("//table/tbody/tr[2]/td[2]/table/tbody/tr/td[2]")).getText(); System.out.println(innerText); driver.quit(); }
Aşağıdaki çıktı, iç tabloya başarıyla erişildiğini doğrular.
Nitelikleri Yüklem Olarak Kullanma
Eğer öğe HTML kodunun derinliklerinde, yüklem için kullanılacak sayının belirlenmesini zorlaştıracak şekilde yazılmışsa, bunun yerine o öğenin benzersiz niteliğini kullanabiliriz.
Aşağıdaki örnekte "New York'tan Chicago'ya" hücresi derinlerde yer almaktadır. Mercury Turlar ana sayfasının HTML kodu.
Bu durumda tablonun benzersiz özelliğini (width=”270″) yüklem olarak kullanabiliriz. Nitelikler, @ simgesiyle önek eklenerek yüklem olarak kullanılır. Yukarıdaki örnekte “New York'tan Chicago'ya” hücresi ilk sırada yer almaktadır. dördüncünün , dolayısıyla XPath'ımız aşağıda gösterildiği gibi olmalıdır.
XPath kodunu girdiğimizde bunu unutmayın JavaBy.xpath()'in dize argümanının erken sonlanmaması için, "270" ifadesinin her iki tarafındaki çift tırnak işaretleri için kaçış karakteri ters eğik çizgi "\" kullanmalıyız.
Artık aşağıdaki kodu kullanarak o hücreye erişmeye hazırız.
public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/newtours/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); String innerText = driver.findElement(By .xpath("//table[@width=\"270\"]/tbody/tr[4]/td")) .getText(); System.out.println(innerText); driver.quit(); }
Kısayol: Tablolara Erişmek için Öğeyi İncele'yi kullanın Selenium
Bir öğenin numarası veya niteliğinin elde edilmesi son derece zor veya imkansızsa, XPath kodunu oluşturmanın en hızlı yolu Inspect Element'i kullanmaktır.
Aşağıdaki örneği göz önünde bulundurun Mercury Turlar ana sayfası.
1. Adım
XPath kodunu almak için Firebug'u kullanın.
2. Adım
İlk "tablo" ana öğesini arayın ve solundaki her şeyi silin.
3. Adım
Kodun kalan kısmının başına çift eğik çizgi “//” ekleyin ve WebDriver kodunuza kopyalayın.
Aşağıdaki WebDriver kodu, erişmekte olduğumuz öğenin iç metnini başarıyla alabilecektir.
public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/newtours/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); String innerText = driver.findElement(By .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")) .getText(); System.out.println(innerText); driver.quit(); }
ÖZET
- By.xpath() yaygın olarak WebTable'ın öğelerine erişmek için kullanılır. Selenium.
- Eğer öğe HTML kodunun derinliklerinde yüklem için kullanılacak sayının belirlenmesini zorlaştıracak şekilde yazılmışsa, bunun yerine o öğenin benzersiz niteliğini kullanabiliriz. Selenium tablo öğesini alın.
- Nitelikler, @ simgesiyle önek eklenerek yüklem olarak kullanılır.
- WebTable'a Erişmek için Inspect Element'i kullanın Selenium