handling web tables frames
Son Selenium WebDriver eğitiminde, çeşitli yaygın olarak öğrendik ve rutin olarak kullanılan Selenium WebDriver komutları Selenium komut dosyalarında iframe ve istisnalar gibi önemli konuları içerir.
Kapsamlı hizmetimizde ilerlemek Selenium ile ilgili bir dizi eğitim , bu eğiticide tartışacağız Web tabloları, iframe ve dinamik öğeleri kullanma herhangi bir web projesinin önemli bir parçası olan.
Bu öğretici 3 farklı konu ve bunların selenyum komut dosyasındaki işleme mekanizmalarından oluşur.
- Web Tabloları / HTML tabloları
- Çerçeveler
- Dinamik öğeler
Ne öğreneceksin:
# 1) Web Tabloları / HTML Tabloları
Bu modülde, bir web sayfasındaki web tabloları veya HTML tabloları, HTML'de bulunan etiketler ve web tablolarının dinamik olarak nasıl ele alınacağını öğreneceğiz.
Web tabloları temelde mantıksal olarak satır ve sütun biçiminde saklanan bir grup unsurdur. Bir web sayfasındaki benzer bilgileri düzenlemek için kullanılır.
Aşağıda bir Html tablosu örneği verilmiştir:
Aşağıda, bir HTML tablosunun HTML yapısının pasajı verilmiştir:
Aşağıdaki etiketler genellikle html tablolarında tanımlanır:
1.'table ’etiketi HTML tablosunu tanımlar.
2.'tbody ’etiketi, satırlar ve sütunlar için bir kapsayıcı tanımlar.
3.’tr ’, bir HTML tablosundaki satırları tanımlar.
4.’td ’/’ th ’bir HTML tablosunun sütununu tanımlar.
Bir web tablosunun ayrıntılarını bulun:
Bir web tablosunu idare etmenin birçok yolu vardır.
hangi program bir eps dosyasını açar
Yaklaşım 1 :
Aşağıda html tablosundaki hücrelerden birinin xpath'i verilmiştir. 'Firstname' diyelim
// div (@ id = ’ana’) / tablo (1) / tbody / tr (1) / th (1)
tr (1) ilk satırı, th (1) ise ilk sütunu tanımlar.
Bir dizi satır ve sütun her zaman sabitse, HTML tablomuzda her zaman 5 satır ve 3 sütun olacağını varsayalım.
for(int numberOfRows=1; numberOfRows<=5; numberOfRows++) { for(int numberOfCol=1; numberOfCol <=3; numberOfCol++) { System.out.println(driver.findElement(By.xpath (“//div(@id='main')/table(1)/tbody/tr (“+numberOfRows+”)/th(“+numberOfCol+”)”))); } }
Satır ve sütun numarası dışında, XPath'in her bileşeni aynı kalır. Dolayısıyla, yukarıda belirtildiği gibi her satır ve sütun için 'for döngüsü' kullanarak yineleme yapabilirsiniz.
Yaklaşım 2 :
İlk yaklaşım, boyutlarını değiştirmeyen ve her zaman aynı kalan tablo için en uygun olanıdır. Yukarıdaki yaklaşım, dinamik olarak değişen web tabloları için mükemmel bir çözüm olmayacaktır.
Örnek olarak yukarıdaki HTML tablosunu ele alalım:
WebElement htmltable=driver.findElement(By.xpath('//*(@id='main')/table(1)/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Aşama 1 : Önce tüm HTML tablosunu alın ve bunu web öğesi türündeki bir değişken 'htmltable' içinde saklayın.
Adım 2 : 'Tr' etiket adlı tüm satırları alın ve tüm öğeleri bir web öğeleri listesinde saklayın. Şimdi 'tr' etiketli tüm öğeler 'satırlar' listesinde saklanıyor.
Aşama 3 : Her satırda döngü yapın ve etiketli öğelerin listesini alın 'Th'. 'Rows.get (0)' ilk sırayı verecek ve 'FindElements (By.tagName ( 'Th' )) ' satır için sütunların listesini verecektir.
4. adım : Kullanarak yineleyin 'Columns.getsize ()' ve her hücrenin ayrıntılarını alın.
Not : Yukarıdaki yaklaşım, tablo boyutları dinamik olarak değişirse en uygun olanıdır.
Bu, selenyumda web tablolarının nasıl işleneceği konusunu bitirir. Daha sonra, bir çerçevenin içindeki bir öğenin nasıl kullanılacağını öğreneceğiz.
# 2) Çerçeveler
Bu bölümde, bir web sayfasındaki çerçeveleri ve çerçeveleri nasıl tanımlayacağımızı öğreneceğiz. Ayrıca, Selenium WebDriver'da bir çerçeveyi nasıl kullanabileceğimizi de öğreneceğiz.
Birçok geliştirici, öğeleri bir çerçevenin içine yerleştirmeyi sever. Çerçeve, birkaç öğenin gruplanabildiği bir kap gibidir.
Bir çerçevenin tanımlanması:
Öğenin bir çerçeve içinde olup olmadığını anlamanın farklı yolları
# 1 . Öğeye sağ tıklayın. 'Bu Çerçeve' seçeneğinin mevcut olup olmadığını kontrol edin. Bu çerçeve seçeneği mevcutsa, bu, elemanın bir çerçevenin içinde olduğu anlamına gelir.
#iki . Web sayfasının sayfa kaynağını görüntüleyin ve 'iframe' için herhangi bir etiket olup olmadığını kontrol edin.
en iyi ücretsiz Windows 7 onarım aracı

Bir web sayfasındaki çerçeve sayısını doğrulayın :
Tüm çerçeveler 'iframe' olarak etiket adına sahiptir.
List frameList = driver.findElements (By.tagName ( 'Iframe' ));
System.out.println (frameList.size ());
Yukarıdaki örnekte : frameList tüm çerçeve listesine sahip olacak ve frameList.size () kare sayısını verecektir.
Çerçevenin içindeki bir öğeyi kullanma:
Bir eleman bir çerçevenin içindeyse, kontrol önce çerçeveye geçmeli ve ardından elemanlar üzerinde çalışmaya başlamalıdır.
Aşama 1 : Bir çerçeve içinde geçiş yapmak için:
driver.switchTo (). çerçeve (1); // çerçeve numarasını parametre olarak ilet.
veya
driver.switchTo (). çerçeve ('çerçeve Adı'); // çerçeve adını parametre olarak ilet.
veya
driver.switchTo (). çerçeve ('çerçevenin x yolu');
Adım 2 : Bir çerçeve içerisine geçtikten sonra selenyum elemanlar üzerinde çalışabilecektir.
driver.findElement ( // ********************************************);
driver.findElement ( // *********************************************);
Burada, çerçevenin içindeki bir öğeyi nasıl kullanacağımızı öğrendik ve sonra dinamik öğeyi kullanmanın farklı yollarını ele alacağız.
# 3) Dinamik Öğeler
Bu bölümde dinamik elementi kullanmanın ve genel Xpath'i oluşturmanın farklı yollarını öğreneceğiz.
Birkaç senaryoda, eleman özellikleri dinamik olarak değişir. 'İd', 'name' vb. Olabilir.
Misal : bir kullanıcı adı alanının 'id' si 'username_123' diyelim ve XPath
// * (@ id = ’kullaniciadi_123 ′) ancak sayfayı tekrar açtığınızda 'kullanıcı adı' alanının 'kimliği' değişmiş olabilir ve yeni değer 'kullaniciadi_234' olabilir.
Bu durumda, selenyum daha önce geçirdiğiniz XPath'i bulamadığından, alanın kimliği başka bir değere değiştiğinden test başarısız olacaktır.
Sorunun türüne bağlı olarak birçok yaklaşım vardır:
Problem Tipi 1: Öznitelik değerinin bir kısmı değişirse .
Misal : Yukarıdaki örnekte olduğu gibi, id değeri değişir, ancak birkaç alan sabit kalır.
'Username_123', 'username_234' olarak değiştirildi, ancak 'username' her zaman sabit kaldı.
Xpath'i aşağıdaki gibi inşa edebilirsiniz:
driver.findElement (By.xpath ( '// * (içerir (@ id,’ kullanıcı adı ’))” )). sendKeys ( 'Kullanıcı adı' );
sürücü . findElement (By.xpath ( '// * (başlar-with (@ id,’ user ’))” )). sendKeys ( 'Kullanıcı adı' );
'İçerir' id'nin alt dize kullanıcı adını içerip içermediğini kontrol eden bir java yöntemidir.
ile başlar() herhangi bir özniteliğin 'kullanıcı' ile başlayıp başlamadığını kontrol eder.
Problem Tipi 2: Özniteliğin tüm değeri dinamik olarak değişirse.
Yine bu durumda farklı yaklaşımlar olabilir:
Örneğin : 'giriş' alanının kimliği dinamik olarak değişirse ve contains yöntemini kullanmak için sabit bir değer yoksa.
Çözüm : SendKeys kullanımı.
Selenium, işlev anahtarlarını kullanmak için farklı API sağlar. Örneğin sekme tuşu, tuşları girin, F5 vb.
java nasıl liste oluşturulur
Aşama 1 : Parolanı Gir
driver.findElement (By.id ( 'parola' )). sendKeys ('şifre'));
Adım 2 : Öğeye gitmek için temel işlevleri kullanın.
driver.findElement (By.id ( 'parola' sendKeys (Anahtarlar. GİRİŞ ));
veya
driver.findElement (By.id ( 'parola' sendKeys (Anahtarlar. TAB ));
Sonuç
Web tabloları, çerçeveler ve dinamik öğeler, herhangi bir web projesinin önemli bir parçasıdır. Web tablolarını ve dinamik öğeleri işlemek için her zaman etkili kod yazmak istenir.
Dinamik unsurları işlerken çok yardımcı olan jenerik XPath'in yapısını anlamak. Çerçeve olması durumunda, komut dosyanızın çerçeveyi değiştirmesi ve ardından öğe üzerinde çalışması gerekir.
Sonraki eğitim # 19 : Bir sonraki Selenium eğitiminde öğreneceğiz Özel durum türleri ve Selenium betiklerinde java'daki özel durumların nasıl ele alınacağı hakkında.
Lütfen Web tabloları, çerçeveler ve varsa dinamik eleman işleme ile ilgili sorularınızı gönderin.
Önerilen Kaynaklar
- Selenium Komut Dosyaları Oluşturmak İçin Chrome ve IE Tarayıcılarda Öğeler Nasıl Bulunur - Selenium Tutorial # 7
- Bir Web Sayfasındaki Açılır Öğeleri Kullanmak için Selenium Select Sınıfı Kullanımı - Selenium Eğitimi # 13
- Selenyum Konumlayıcılar: Selenyumda XPath Kullanarak Web Öğelerini Tanımlayın (Örnekler)
- Selenium Scriptler için Web Öğelerini Tanımlamak için CSS Seçici Nasıl Kullanılır - Selenium Tutorial # 6
- Çeşitli Türlerde WebDriver Komutlarını Kullanarak Web Öğelerinin Görünürlüğünü Kontrol Edin - Selenium Eğitimi # 14
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium'un JMeter ile entegrasyonu
- Selenium WebDriver switchTo () Yöntemini Kullanarak iFrame'leri Kullanma