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.

Tablo için XPath nasıl yazılır? Selenium

Kullanacağız XPath “dördüncü hücre” metnini içeren hücrenin iç metnini almak için

Tablo için XPath nasıl yazılır? Selenium

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.

Selenium Web Tablosu Örneği

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.

Selenium Web Tablosu Örneği

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.

Selenium Web Tablosu Örneği

Herhangi bir yüklem kullanmayacaksak XPath ilk kardeşe erişecektir. Bu nedenle ilkine erişebiliriz. bu XPath kodlarından herhangi birini kullanarak.

Selenium Xpath kullanan Web Tablosu

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.

Web Tablosu Selenium XPath'ı kullanma

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.

Web Tablosu Selenium XPath'ı kullanma

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();
	}
}

Web Tablosu Selenium XPath'ı kullanma

İç İç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.

İç İçe Tablolara Nasıl Erişilir? Selenium

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.

İç İçe Tablolara Nasıl Erişilir? Selenium


Aşağıdaki WebDriver kodu, erişmekte olduğumuz hücrenin iç metnini alabilmelidir.

İç İçe Tablolara Erişim Selenium

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.

İç İçe Tablolara Erişim Selenium

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.

Selenium Nitelikleri Tahmin Olarak Kullanan Web Tablosu Örneği

Selenium Nitelikleri Tahmin Olarak Kullanan Web Tablosu Örneği

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.

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

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.

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

Artık aşağıdaki kodu kullanarak o hücreye erişmeye hazırız.

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

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();
}

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

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ı.

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

1. Adım

XPath kodunu almak için Firebug'u kullanın.

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

2. Adım

İlk "tablo" ana öğesini arayın ve solundaki her şeyi silin.

Selenium Niteliklerin Tahmin Olarak Kullanıldığı Web Tablosu Örneği

3. Adım

Kodun kalan kısmının başına çift eğik çizgi “//” ekleyin ve WebDriver kodunuza kopyalayın.

Selenium Nitelikler içeren web tablosu örneği

Aşağıdaki WebDriver kodu, erişmekte olduğumuz öğenin iç metnini başarıyla alabilecektir.

Selenium Nitelikler içeren web tablosu örneği

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