top 25 selenium webdriver commands that you should know
En İyi Selenium WebDriver Komutları - Otomasyon Test Cihazları için Olağanüstü Bir Kılavuz
Selenium WebDriver, en popüler açık kaynaklı web sitesi otomasyon araçlarından biridir. Otomasyon test edicilerimin çoğu WebDriver ile Java kombinasyonunu tercih ediyor.
Bu eğitimde, rutin olarak kullanılan 25 Selenium WebDriver komutunu, ilgili Sözdizimi ve kolay anlamanız için basit örneklerle birlikte tartışacağım.
Ne öğreneceksin:
- WebDriver'daki Komut Türleri
- Ayrıntılara Sahip En İyi 7 Selenium Komutu
- 25 Daha Popüler WebDriver Komutları ve Örneklerinin Listesi
- # 1) almak ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) ve tıklayın ()
- # 4) Etkin ()
- # 5) sendKeys () ile findElement (By, by)
- # 6) getText () ile findElement (By, by)
- # 7) Gönder ()
- # 8) findElements (Yazan, yazan)
- # 9) findElements (By, by) with size ()
- # 10) pageLoadTimeout (zaman, birim)
- # 11) örtük olarak Bekle ()
- # 12) till () ve visibilityOfElementLocated ()
- # 13) till () ve alertIsPresent ()
- # 14) getTitle ()
- # 15) Seçin
- # 16) gezin ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () ve accept (), dismiss () ve sendKeys ()
- # 21) getWindowHandle () ve getWindowHandles ()
- # 22) getConnection ()
- # 23) SONRA
- # 24) assertEquals (), assertNotEquals (), assertTrue () ve assertFalse ()
- # 25) kapat () ve çık ()
- Sonuç
- Önerilen Kaynaklar
WebDriver'daki Komut Türleri
İçinde son Selenium öğreticisi , tartıştık farklı uyarı türleri web tabanlı uygulamaları ve bunların etkili kullanım yollarını test ederken karşılaşılan. Hem uyarı türlerini, yani 'Web tabanlı uyarıları' ve 'Pencere tabanlı uyarıları' uzun uzun tartıştık. Ayrıca sizi Windows tabanlı açılır pencereleri işlemek için 'Robot Sınıfı' adlı başka bir Java tabanlı yardımcı programla tanıştırdık.
İlerlemek bu Selenium WebDriver eğitim serisi , üzerine baskı yapıyor olurduk yaygın ve rutin olarak kullanılan çeşitli Selenium WebDriver komutları . Durum ortaya çıktığında bu komutları etkili bir şekilde kullanabilmenizi sağlamak için bu Selenium komutlarının her birini kesin ve kısaca tartışacağız.
Her otomasyon Java çalışma dosyası, aşağıdaki sözdiziminde belirtildiği gibi kullanmak istediğimiz bir web tarayıcısı referansı oluşturmakla başlar.
Webdriver arayüzünde kullanılabilen birkaç yöntem vardır. Bu yöntemlere örnek değişkeni kullanılarak erişilir sürücü basit bir biçimde driver.methodName (); . Tüm bu otomasyon projeleri, bu yöntemleri çağırmayı ve gerçekte neyi döndürdüklerini karşılaştırmayı ve değerlendirmeyi içerir.
Basit bir ifadeyle, Webdriver komutlarını genel olarak şu şekilde sınıflandırabiliriz:
- Tarayıcı komutları,
- Komutlar alın,
- Navigasyon komutları,
- Webelement komutları,
- Eylem komutları ve
- Sonuç komutları.
Manuel test bağlamında, bir testin sonucuna (GEÇTİ veya BAŞARISIZ) genellikle beklenen ve gerçek sonuçları karşılaştıran Sonuç komutlarından karar verilir ve geri kalanı Test senaryosu adımlarıdır.
Ayrıntılara Sahip En İyi 7 Selenium Komutu
Sadece kabaca bir fikrimiz olması için, aşağıdaki Selenium WebDriver komutlarını ve farklı sürümlerini tartışıyor oluruz:
- almak() yöntemler
- Bağlantıları şuna göre bulma linkText() ve kısmiLinkText ()
- Bir açılır menüden birden çok öğe seçme
- Bir form gönderme
- İframe'leri kullanma
- kapat() ve çık () yöntemler
- İstisna işleme
# 1) get () Yöntemleri
WebDriver komutu | Kullanım |
---|---|
getAttribute () | • Komut, belirtilen özniteliğin değerini almak için kullanılır • Komut, değerini bilmek istediğimiz ve sonuç olarak bir dize değeri döndüren bir özniteliğe başvuran tek bir dize parametresi gerektirir. driver.findElement (By.id ('findID')). getAttribute ('değer'); |
almak() | • Komut, yeni bir tarayıcı başlatır ve açılır tarayıcı örneğinde belirtilen URL • Komut, genellikle test edilen uygulamanın URL'si olan tek bir dize türü parametresi alır • Selenium IDE kullanıcıları için komut, open komutuna çok benzeyebilir driver.get ('https://google.com'); |
getClass () | Komut, Class nesnesini almak için kullanılır Bu nesnenin çalışma zamanı sınıfını temsil eden driver.getClass (); |
getCurrentUrl () | • Komut, kullanıcının şu anda erişmekte olduğu web sayfasının URL'sini almak için kullanılır • Komut herhangi bir parametre gerektirmez ve bir dize değeri döndürür driver.getCurrentUrl (); |
getPageSource () | • Komut, sayfa kaynağını almak için kullanılır kullanıcının şu anda erişmekte olduğu web sayfasının • Komut herhangi bir parametre gerektirmez ve bir dize değeri döndürür • Komut, include () gibi çeşitli dize işlemleriyle birlikte kullanılabilir. belirtilen dize değerinin varlığı boole sonucu = sürücü.getPageSource (). içerir ('Bulunacak dizge'); |
getTitle () | • Komut, kullanıcının şu anda üzerinde çalıştığı web sayfasının başlığını almak için kullanılır. Web sayfasının başlığı yoksa boş bir dize döndürülür • Komut herhangi bir parametre gerektirmez ve kesilmiş bir dize değeri döndürür Dize başlığı = driver.getTitle (); |
getText () | • Komut, iç metni almak için kullanılır belirtilen web öğesinin • Komut herhangi bir parametre gerektirmez ve bir dize değeri döndürür • Ayrıca görüntülenen mesajların, etiketlerin, hataların vb. Doğrulanması için yaygın olarak kullanılan komutlardan biridir. web sayfalarında. Dize Metin = sürücü.findElement (Yazan.id ('Metin')). GetText (); |
getWindowHandle () | • Komut, ilgilenmemiz gereken birden fazla penceremiz olduğunda durumu halletmek için kullanılır. • Komut, yeni açılan pencereye geçmemize ve yeni pencerede eylemler gerçekleştirmemize yardımcı olur. Kullanıcı isterse önceki pencereye de dönebilir. özel String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). penceresi (winHandleBefore); |
getWindowHandles () | • Komut, 'getWindowHandle ()' komutunun komutuna benzer, ancak çok küçük farkla birden çok pencereyle, yani 2'den fazla pencereyle uğraşmamız gerektiğinde başa çıkmaya yardımcı olur. |
'GetWindowHandles ()' için kod pasajı aşağıda verilmiştir:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) linkText () ve kısmiLinkText () ile bağlantıları bulma
Kullanarak 'google.com' ve 'abodeqa.com' a erişelim linkText() ve parsiyelLinText () WebDriver yöntemleri.
Yukarıda belirtilen bağlantılara aşağıdaki komutlar kullanılarak erişilebilir:
sürücü .findElement(By.linkText( 'Google' )).Tıklayın();
sürücü .findElement(By.linkText( AbodeQA )).Tıklayın();
Komut, bağlantı metnini kullanarak öğeyi bulur ve ardından o öğeye tıklar ve böylece kullanıcı ilgili sayfaya yeniden yönlendirilir.
Yukarıda belirtilen bağlantılara aşağıdaki komutlar kullanılarak da erişilebilir:
sürücü .findElement (By.partialLinkText ( 'Goo' )).Tıklayın();
sürücü .findElement (By.partialLinkText ( 'Mesken' )).Tıklayın();
Yukarıdaki iki komut, parantez içinde sağlanan bağlantının alt dizisine dayalı olarak öğeleri bulur ve bu nedenle kısmiLinkText (), belirtilen alt dizeye sahip web öğesini bulur ve ardından üzerine tıklar.
# 3) Bir açılır menüden birden çok öğe seçme
Öncelikle iki tür açılır menü vardır:
- Tek seçimli açılır menü : Bir seferde yalnızca tek bir değerin seçilmesine izin veren bir açılır menü.
- Çoklu seçim açılır menüsü : Bir seferde birden çok değerin seçilmesine izin veren bir açılır menü.
Aşağıdaki HTML kodunu düşünün aynı anda birden çok değer seçebilen bir açılır menü için.
Red Green Yellow Grey
Aşağıdaki kod parçacığı, bir açılır menüdeki birden çok seçimi göstermektedir.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Bir form göndermek
Çoğu veya neredeyse tüm web sitelerinin, bir web uygulamasını test ederken doldurulması ve gönderilmesi gereken formları vardır. Kullanıcı, Giriş formu, Kayıt formu, Dosya Yükleme formu, Profil Oluşturma formu gibi çeşitli form türleriyle karşılaşabilir.
WebDriver'da, bir kullanıcı, bir form göndermek için özel olarak oluşturulmuş bir yöntemden yararlanır. Kullanıcı, gönder düğmesine bir yedek olarak göndermek için tıklama yöntemini de kullanabilir.
Yukarıdaki 'yeni kullanıcı' formuyla karşılaştırmalı olarak aşağıdaki kod parçasına bakın:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Böylece, program kontrolü gönderme yöntemini bulur bulmaz öğeyi bulur ve Sunmak() bulunan web öğesinde yöntem.
# 5) iframe'leri kullanma
Web uygulamalarını otomatikleştirirken, bir pencerede birden çok çerçeveyle uğraşmamız gereken durumlar olabilir. Bu nedenle, test komut dosyası geliştiricisinin bu konuda çeşitli çerçeveler veya iç çerçeveler arasında geçiş yapması gerekir.
İframe gibi bir satır içi çerçeve kısaltması, geçerli HTML belgesinin içine başka bir belge eklemek için veya yalnızca bir web sayfasını iç içe yerleştirmeyi etkinleştirerek başka bir web sayfasına eklemek için kullanılır.
Web sayfasında iframe'e sahip olan aşağıdaki HTML kodunu düşünün:
Software Testing Help - iframe session
Yukarıdaki HTML kodu, başka bir iframe içine yerleştirilmiş bir iframe'in varlığını gösterir. Bu nedenle, alt iframe'e erişebilmek için, kullanıcının önce üst iframe'e gitmesi gerekir. Gerekli işlemi gerçekleştirdikten sonra, bir kullanıcının web sayfasının diğer öğesi ile ilgilenmek için ana iframe'e geri dönmesi gerekebilir.
Bir kullanıcının, önce üst iframe'e geçmeden alt iframe'e doğrudan erişmeye çalışması imkansızdır.
Kimliğe göre iframe seçin
sürücü .switchTo (). çerçeve ( ' Çerçevenin kimliği ' );
TagName kullanarak iframe bulma
Bir iframe bulurken, iframe standart özelliklerle ilişkilendirilmezse kullanıcı bazı sorunlarla karşılaşabilir. Çerçeveyi bulmak ve ona geçiş yapmak karmaşık bir süreç haline gelir. Durumun altını çizmek için, bir kullanıcı, WebDriver'da başka herhangi bir web öğesini bulmamıza benzer bir tagName yöntemi kullanarak bir iframe'i bulmak için kullanılır.
driver.switchTo (). çerçeve (driver.findElements (By.tagName ('iframe'). get (0));
Yukarıdaki komut, belirtilen tagName ile ilk web öğesini bulur ve bu iframe'e geçiş yapar. 'Get (0), iframe'i dizin değeriyle bulmak için kullanılır.' Bu nedenle, HTML kodumuza uygun olarak, yukarıdaki kod sözdizimi, program kontrolünün 'ParentFrame' e geçmesine yol açacaktır.
Dizini kullanarak iframe'i bulma:
a) çerçeve (dizin)
driver.switchTo (). çerçeve (0);
b) çerçeve (Çerçevenin Adı)
driver.switchTo (). çerçeve ('çerçevenin adı');
c) çerçeve (WebElement öğesi)
Üst Pencereyi Seç
driver.switchTo (). defaultContent ();
Yukarıdaki komut, kullanıcıyı orijinal pencereye, yani her iki iframe'den çıkarır.
# 6) close () ve quit () metodları
WebDriver'da web tarayıcısı örneğini kapatmak için iki tür komut vardır.
a) kapat () : WebDriver’ın close () yöntemi, kullanıcının o anda üzerinde çalıştığı web tarayıcısı penceresini kapatır veya WebDriver tarafından şu anda erişilmekte olan pencereyi de söyleyebiliriz. Komut, herhangi bir parametre gerektirmez ve herhangi bir değer döndürmez.
b) çık () : Close () yönteminden farklı olarak, quit () yöntemi programın açtığı tüm pencereleri kapatır. Close () yöntemiyle aynı şekilde komut, herhangi bir parametreye ihtiyaç duymaz ve herhangi bir değer döndürmez.
Aşağıdaki kod parçalarına bakın:
sürücü .kapat(); // yalnızca şu anda WebDriver örneği tarafından erişilen tek bir pencereyi kapatır
sürücü .quit (); // WebDriver örneği tarafından açılan tüm pencereleri kapatır
# 7) İstisna İşlemleri
İstisnalar, programın çalışmasını beklenmedik şekilde durduran koşullar veya durumlardır.
Bu tür koşulların nedenleri şunlar olabilir:
- Kullanıcı tarafından yapılan hatalar
- Programcı tarafından oluşturulan hatalar
- Fiziksel kaynaklardan kaynaklanan hatalar
Böylece, bu beklenmedik durumlarla başa çıkmak için istisna yönetimi kavramsallaştırıldı.
Bir web uygulamasını otomatikleştirirken uyguladığımız Java kodu ile ilgili olarak, hatalı koşullara karşı bir işleme mekanizması sağlayabilen bir blok içine alınabilir.
Bir istisna yakalamak
Bir istisna yakalamak için aşağıdaki kod bloğunu kullanıyoruz
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Try bloğunda / korumalı blokta herhangi bir istisna meydana gelirse, yürütme kontrolleri, eşleşen istisna türü için bir catch bloğu olup olmadığını kontrol eder ve programın yürütülmesini bozmadan istisnayı ona iletir.
Çoklu Yakalama Blokları
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Yukarıdaki kodda, istisna türü eşleşirse, bir istisna muhtemelen ilk catch bloğunda yakalanacaktır. İstisna türü eşleşmezse, istisna ikinci catch bloğuna ve üçüncü catch bloğuna geçilir ve tüm catch blokları ziyaret edilene kadar bu şekilde devam eder.
WebDriver koşulları ve Özel Durum İşleme
WebDriver'ın çeşitli koşullu komutlarını kullanarak web sayfasındaki herhangi bir öğenin varlığını doğrulamak istediğimizde, WebDriver web öğesinin web sayfasında mevcut olduğunu varsayar. Web öğesi web sayfasında yoksa, koşullu komutlar 'NoSuchElementPresentException' oluşturur. Bu nedenle, bu tür istisnaların program çalışmasını durdurmasını önlemek için, İstisna İşleme mekanizmalarını kullanırız. Aşağıdaki kod parçasına bakın:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
25 Daha Popüler WebDriver Komutları ve Örneklerinin Listesi
Aşağıda, her Otomasyon Test Cihazının bilmesi gereken rutin olarak kullanılan en iyi 25 Webdriver Komutunun listesi verilmiştir.
Gelin bu komutları tek tek ayrıntılı olarak inceleyelim.
Daha fazla okuma => Selenium WebDriver Eğitimi
# 1) almak ()
Geçerli tarayıcıda bir URL açmak için get () kullanarak komut verin.
Aşağıdaki komut, tarayıcıda belirtilen 'https://www.softwaretestinghelp.com' URL'sini açacaktır.
Sözdizimi:
driver.get('https://www.softwaretestinghelp.com');
Açıklama:
- Https://www.softwaretestinghelp.com URL'sine gidin
# 2) getCurrentUrl ()
URL'nin doğru olup olmadığını kontrol etmek için getCurrentUrl () kullanarak komut verin.
Aşağıdaki komut, geçerli URL'yi dize biçiminde alır.
Sözdizimi:
kalite güvencesi ve kalite kontrol nedir
driver.getCurrentUrl();
Beklendiği gibi doğru sayfaya gidip gitmediğimizi kontrol etmek için genellikle bu yöntemi komutlarda kullanırız. Bunun için aşağıda gösterildiği gibi Assert kullanmalıyız Misal .
Sözdizimi:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
BeklenenUrl, dize biçiminde beklenen URL'dir.
Açıklama:
- Yüklenen URL'nin aynı kaldığını ve doğru sayfanın yüklendiğini kontrol edin ve doğrulayın.
# 3) findElement (By, by) ve tıklayın ()
findElement (Yazar, ölçüt) ve web sayfasının herhangi bir öğesine tıklamak için () öğesine tıklayın.
FindElement (By, by) yöntemi, geçerli sayfadaki parametre olarak verilen kriterlerle eşleşen ilk öğeyi arar ve bulur. Bu yöntem genellikle tıklama, gönder, tür vb. Gibi kullanıcı eylemlerini simüle etmek için komutlarda kullanılır.
Aşağıdaki komut, web sayfasındaki 'gönder1' kimliğine sahip ilk öğeyi arar ve bulur ve kapsam dahilinde değilse üzerine tıklar.
Sözdizimi:
driver.findElement(By.id('submit1')).click();
Eleman kullanılarak bulunabilir İD , İsim , Sınıf İsim , Etiket adı , Bağlantı metni & Kısmi Bağlantı Metni , CSS Seçici ve X Yolu .
Açıklama:
- Gerekli Gönder düğmesini bulun.
- Düğmeye tıklayın.
Aşağıdaki komut, liste kutusundan bir öğe seçer.
Sözdizimi:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Açıklama:
- Liste öğesini “ad1” kimliğine göre arayın ve bulun.
- O öğeye tıklayın.
# 4) Etkin ()
Selenium WebDriver'da Öğenin Etkin veya Devre Dışı Bırakıldığını Kontrol Etmek için isEnabled ().
Bir web sayfasında belirli bir elemanın etkin olup olmadığını kontrol etmek için isEnabled () yöntemini kullanıyoruz.
Sözdizimi:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Açıklama:
- Xpath'e göre web sayfasındaki öğeyi bulur ve öğenin etkin olup olmadığını kontrol eder.
# 5) sendKeys () ile findElement (By, by)
Form alanlarına yazmak için sendKeys () ile findElement (By, by).
Otomasyon testinde sıklıkla gerekli olan farklı kullanıcı girdilerini girerek form doğrulama kontrolleri. Alanları bulmak için findElement (By, by) ve düzenlenebilir bir alana bazı içerikler yazmak için sendKeys () kullanırız.
Aşağıdaki komut, form alanını bulmak için Ad bulucuyu kullanır ve içine “Aaron” yazar.
Sözdizimi:
driver.findElement(By.name('name')).sendkeys('Aaron');
Açıklama:
- Formdaki gerekli ad alanını arayın.
- İçine 'Aaron' değerini girin.
# 6) getText () ile findElement (By, by)
Hedeflenen web öğesinin değerini saklamak için getText () ile findElement (By, by).
GetText (), size web öğesinin iç metnini veren bir yöntemdir. Metni al, HTML etiketlerinin içindeki metindir.
Aşağıdaki kod, tagName 'select' e sahip Öğeyi bulur ve etiketin içindeki metni alır ve bir değişken açılır menüsünde depolar. Artık String dropDown, programın içindeki diğer eylemler için kullanılabilir.
Sözdizimi:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Açıklama:
- 'Dropdown1' tagName içeren formda gerekli alanı arayın.
- Metni HTML etiketinin içine alın.
- Metni 'DropDown' String nesnesine kaydedin.
# 7) Gönder ()
Bir web formu göndermek için () gönderin.
Yukarıda tartıştığımız click () yöntemi, herhangi bir bağlantıya veya düğmeye tıklamak için kullanılabilir. Submit (), tıklanacak öğe bir gönder düğmesiyse, click () 'e daha iyi bir alternatiftir. Gönder düğmesi HTML 'form' etiketinin içindedir ve düğme türü 'gönder' dir ('düğme' değil).
Submit (), düğmeyi ve ad veya e-posta adresi gibi başka herhangi bir alana eklenebilecek yöntemi otomatik olarak bularak hayatı kolaylaştırır. Tıklama durumunda, findElement (By, by) yöntemini kullanmalı ve doğru konumlandırıcıları belirtmeliyiz.
Eylemin düğme dışındaki öğeler aracılığıyla yapıldığı bazı senaryolarda, submit () çalışır ve tıklama () çalışmaz.
Sözdizimi:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Açıklama:
- Verilen x yolunda 'yorumlar' adıyla bir öğe bulun.
- Formu gönderin.
# 8) findElements (Yazan, yazan)
findElements (Yazar, ölçüt) ile web öğelerinin listesini alın.
Bazen bir web sayfasındaki bağlantılar veya giriş alanları gibi web öğelerinin bir listesini yazdırmak veya bunlarla ilgili bir işlem yapmak isteyebiliriz. Böyle bir durumda findElements (By, by) kullanırız.
Sözdizimi:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Açıklama:
- Belirtilen xpath ile tüm web öğelerinin bir listesi allChoices webelement listesinde saklanır.
# 9) findElements (By, by) with size ()
findElements (By, by) ile size () öğesinin mevcut olup olmadığını doğrulamak için.
findElements (By, by), bir öğenin web sayfasında gerçekten mevcut olup olmadığını doğrulamak için kullanılabilir.
Aşağıdaki komut, belirli bir konumlandırıcıya sahip bir öğenin bir web sayfasında mevcut olduğunu doğrulamak istiyorsak kullanılır. Boyut ()! = 0 ise, öğe mevcuttur.
Sözdizimi:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Açıklama:
- Find öğesi, 'checkbox2' kimliğiyle xpath'te belirtildi.
- Öğe listesinin boyutuna göre, Boolean checkIfElementPresent TRUE veya FALSE olarak ayarlanacaktır.
# 10) pageLoadTimeout (zaman, birim)
pageLoadTimeout (zaman, birim) bir sayfanın yükleneceği zamanı ayarlamak için.
Bazen sunucu sorunları veya ağ gecikmeleri nedeniyle bir sayfanın yüklenmesi normalden daha uzun sürebilir. Bu, programda bir hata oluşturabilir. Bunu önlemek için bir bekleme süresi belirledik ve pageLoadTimeout () bu yöntemlerden biridir. Bu genellikle bir get () komutunu takip eder.
Sözdizimi:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Açıklama:
- Bir sayfanın yüklenmesi için 500 saniye bekleyin.
# 11) örtük olarak Bekle ()
örtük olarak Bekleyin () bir web öğesini aramadan ve bulmadan önce bir bekleme süresi ayarlamayı.
Webdriver, web sayfası yüklenmeden ve öğe görünmeden önce bir öğeyi bulmaya çalışırsa ne olur? NoSuchElementExeption atılacak. Bundan kaçınmak için, öğeyi konumlandırmadan önce belirli bir süre örtük olarak beklemek için bir komut ekleyebiliriz.
Sözdizimi:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Açıklama:
- Koddaki bir sonraki satırı çalıştırmadan önce örtük olarak 1000 saniye bekleyin.
# 12) till () ve visibilityOfElementLocated ()
Unill () WebdriverWait ve visibilityOfElementLocated () ExpectedConditions'tan bir öğe web sayfasında görünene kadar açıkça beklemek için.
Bir öğenin yazılım web sayfasında görünmesinin çok uzun sürdüğü durumları ele almak için örtük bekleme uygulaması zorlaşır. Bu durumda, element web sayfasında görünene kadar beklemek için bir yorum yazabiliriz. Bu komut, WebdriverWait Sınıfından until () yönteminin ve ExpectedConditions sınıfından visibilityOfElementLocated () yönteminin bir kombinasyonunu kullanır.
Sözdizimi:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Açıklama:
- İlk satır, 10 saniye olan ne kadar bekleyeceğinizi söylüyor.
- İkinci koşul, beklemek için beklenen bir koşul olduğunu söylüyor. Burada, belirtilen xpath'te id’name’ye sahip bir öğedir.
# 13) till () ve alertIsPresent ()
WebdriverWait'ten () kadar ve ExpectedConditions'tan uyarıIsPresent () bir uyarı görünene kadar açıkça beklemek için.
Bazı senaryolarda, teste devam etmek için uyarıları beklememiz gerekir. Bu durumda, WebdriverWait sınıfından until () yöntemini ve ExpectedConditions sınıfından alertIsPresent () yöntemini kullanan bir komut kullanırız.
Lütfen aşağıdaki komuta bakın:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Açıklama:
- İlk satır ne kadar bekleyeceğimizi söylüyor - bu 10 saniye.
- İkinci koşul, beklemek için beklenen bir koşul olduğunu söylüyor. Burada bir uyarı açılır.
# 14) getTitle ()
Selenium web sürücüsünde sayfa başlığını almak için getTitle ().
Sözdizimi:
String title = driver.getTitle(); System.out.println(title);
Bu genellikle başlığı çıktı günlüklerinde yazdırmak için kullanılır.
Açıklama:
- Web sayfasının başlığını alın ve String nesnesi başlığında saklayın.
- Başlıkta saklanan değeri çıktı günlüklerine yazdırın.
# 15) Seçin
Selenium WebDriver'daki açılır menüden değerleri seçmek ve seçimi kaldırmak için sınıf seçin.
Sıklıkla açılır listeyle ilgili senaryolarımız vardır. Bunu işlemek için Select sınıfındaki yöntemler kullanılır. Senaryoya göre selectByVisibleText (), selectByValue () veya selectByIndex () kullanabiliriz.
Sözdizimi:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Açıklama:
- 'Select' kimliğini kullanarak Açılır listeyi bulun.
- Açılır menüden görünen 'Apple' metnini seçin.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Açıklama:
- 'Select' kimliğini kullanarak Açılır Menüyü bulun.
- Açılır menüden 'Apple' değerine sahip metni seçin.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Açıklama:
- 'Select' kimliğini kullanarak Açılır Menüyü bulun.
- Açılır menüden dizin değeri '1' olan açılır öğeyi seçin (İkinci öğe).
Seçime benzer şekilde, benzer komutlar kullanarak açılır menüden değerlerin seçimini kaldırabiliriz.
Lütfen komutları kontrol edin:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Açıklama:
- 'Select' kimliğini kullanarak Açılır Menüyü bulun.
- Açılır menüden görünen 'Apple' metninin seçimini kaldırın.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Açıklama:
- 'Select' kimliğini kullanarak Açılır Menüyü bulun.
- Açılır menüden 'Apple' değerine sahip metnin seçimini kaldırın.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Açıklama:
- 'Select' kimliğini kullanarak Açılır Menüyü bulun.
- Açılır menüden dizin değeri '1' olan açılır öğenin seçimini kaldırın (İkinci öğe).
URL'ler arasında gezinmek için gezinin ().
Açılış URL'sinden gitmek ve sonra geri veya ileri gitmek isteyebileceğimiz senaryoları sıklıkla görüyoruz. Bu gibi durumlarda get () yerine navigate () kullanabiliriz. Navigate'de, URL'leri belirtmeden back () ve forward () yöntemlerini kullanabiliriz.
Sözdizimi:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Açıklama:
- Https://www.softwaretestinghelp.com adresine gidin
- Geri gidin.
- İleri gidin.
# 17) getScreenshotAs ()
Selenium WebDriver'da tüm sayfa ekran görüntüsünü yakalamak için getScreenshotAs ().
Bu, genellikle iş ayrıntılarınızı kaydetmek veya bazen çıktıları manuel olarak kontrol etmek için gereklidir. Aşağıdaki komut, bir ekran görüntüsü almak ve bir çıktı dosyasına kaydetmek için kullanılır.
Sözdizimi:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Açıklama:
- Bir ekran görüntüsü alın ve dosyayı nesne görüntüsüne kaydedin.
- Dosyayı D sürücüsüne shot1.png olarak kaydedin.
# 18) moveToElement ()
Fare üzerine gelme efektini simüle etmek için Eylemler sınıfından moveToElement () öğesini kullanın.
Alt menüyü görmek için üst menü, renk değişikliklerini görmek için bağlantılar vb. Gibi web öğelerinin üzerine gelmemiz gereken senaryolar vardır. Bu durumlarda, Eylemler sınıfını kullanırız. Action sınıfı için aşağıdaki sözdizimine bir göz atın.
Sözdizimi:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Açıklama
- Div id 'mainmenu1' olan web öğesini bulun ve bulun.
- Fare işaretçisini öğeye taşıyın.
# 19) dragAndDrop ()
Bir öğeyi sürükleyip başka bir öğeye bırakmak için Eylemler sınıfından dragAndDrop () öğesini kullanın.
Bazı senaryolarda öğeleri sürüklemek isteyebiliriz. Örneğin, sahneye bir görüntü sürükleyin. Bu durumda, Actions sınıfını kullanabiliriz.
DragAndDrop yönteminde, iki parametreyi geçiyoruz, Kaynak bulucu - sürüklemek istediğimiz öğe ve Hedef konum belirleyici - bırakmak istediğimiz öğe.
Sözdizimi:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Açıklama:
- Kaynak web öğesini bulun ve bulun.
- Hedef web öğesini bulun ve bulun.
- Kaynak öğeyi hedef öğeye sürükleyip bırakın.
# 20) switchTo () ve accept (), dismiss () ve sendKeys ()
açılır uyarılara geçmek ve bunları işlemek için Alert sınıfından switchTo () ve accept (), dismiss () ve sendKeys () yöntemlerini kullanın.
Uyarılara, açılır pencerelere geçmek ve bunları işlemek için aşağıdakilerin bir kombinasyonunu kullanıyoruz: çevirmek() ve kabul et (), reddet () Alert sınıfından yöntemler.
Sözdizimi:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Açıklama:
- Uyarı penceresine geçin.
- Uyarının içine 'Bu Yazılım Testi Yardımıdır' yazın.
- Uyarıyı kabul edin ve kapatın.
alert.dismiss () uyarıyı kapatmak için kullanılabilir.
# 21) getWindowHandle () ve getWindowHandles ()
Selenium WebDriver'da Çoklu Pencereleri işlemek için getWindowHandle () ve getWindowHandles ().
youtube'dan video indirme uygulamaları
Web uygulamalarının birçok çerçeveye veya pencereye sahip olduğu birçok durum vardır.
Bunlar çoğunlukla reklamlar veya bilgi açılır pencereleridir. Windows İşleyicilerini kullanarak birden çok pencereyi yönetebiliriz. Webdriver, her pencere için benzersiz bir pencere kimliği depolar. Onları idare etmek için bu kimliği kullanıyoruz.
Sözdizimi:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Yukarıdaki komutlar, sırasıyla geçerli pencerenin ve tüm pencerelerin pencere kimliklerini almak için kullanılır. For döngüsü aracılığıyla her pencereye nasıl gidebileceğimizi görmek için lütfen aşağıdaki döngüye bakın.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Açıklama:
- Driver.getWindowHandles () 'dan her bir pencere tanıtıcısı kimliği için bu pencere kimliğine geçin.
# 22) getConnection ()
Veritabanı Bağlantısını başlatmak için DriverManager'dan getConnection ().
Veritabanı bağlantısı başlatmak için DriverManager sınıfından getConnection kullanıyoruz.
Sözdizimi:
DriverManager.getConnection(URL, 'username', 'password' )
Açıklama:
- Veritabanına URL ve kimlik bilgileri aracılığıyla bağlanın.
# 23) SONRA
Excel dosyalarından okunacak İÇN.
Veriye dayalı testlerde, genellikle girdileri excel dosyasına kaydeder ve okuruz. Bunu WebDriver'da yapabilmek için POI paketini içe aktarıyoruz ve ardından aşağıdaki komutu kullanıyoruz.
Sözdizimi:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Açıklama:
- Bir okuyucu dosyası oluşturun.
- Dosyayı okuyun.
# 24) assertEquals (), assertNotEquals (), assertTrue () ve assertFalse ()
Sonuçları karşılaştırmak için assertEquals (), assertNotEquals (), assertTrue () ve assertFalse () kullanarak iddialar.
Beklenen ve gerçekleşen sonuçları karşılaştırmak için iddialar kullanılır. Bir testin başarılı veya başarısız olmasına genellikle iddiaların sonucuna göre karar verilir. Otomasyonda farklı iddia türleri kullanılmaktadır.
Sözdizimi:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Açıklama:
- İlk komutta, beklenen ve gerçek değerler aynı olduğunda, iddia istisnasız geçer. yani, mesaj 'Bu metin' ise, o zaman iddia geçer.
- İkinci komutta, beklenen ve gerçek değerler aynı olduğunda, iddia bir istisna ile başarısız olur. yani, mesaj 'Bu metin' ise, iddia başarısız olur.
- Üçüncü komutta, koşul geçerse, iddia geçer. yani sonuç ise<0, then the assertion passes.
- Dördüncü komutta, koşul geçerse, iddia başarısız olur. yani sonuç ise<0, then the assertion fails.
# 25) kapat () ve çık ()
pencereleri ve sürücü örneklerini kapatmak için close () ve quit ().
Bu komutlar her otomasyon programının sonunda kullanılır.
Sözdizimi:
driver.close() driver.quit()
Açıklama:
İlk komut mevcut pencereyi kapatır.
İkinci komut, açılan her ilişkili pencereyi kapatarak bu sürücü örneğinden çıkar.
Sonuç
Bu eğiticide, çeşitli WebDriver'ın yaygın ve aşırı kullanılan komutlarını tanıttık. Komutları uygun örnekler ve kod parçacıkları ile açıklamaya çalıştık.
Günlük işlerimizde rutin olarak kullandığımız en popüler WebDriver komutlarını açıklamak için elimden geleni yaptım. Bu komutlar, Selenium ile kolayca çalışmanıza izin verecektir.
Umarım sizin için ilginç ve bilgili olmuştur.
Yukarıdaki komutlardan herhangi birini deneyen bir Otomasyon Test Cihazı mısınız? Veya yukarıdaki listede kullandığınız komutlardan herhangi birini gözden kaçırdık mı?
Sonraki Eğitim # 18 : Gelecek eğitimde, aşağıdakiler hakkında tartışacağız: Web tabloları, çerçeveler ve dinamik öğeler herhangi bir web projesinin önemli bir parçası olan. Biz de ele alacağız istisna işleme Önümüzdeki Selenium Eğitimlerinden birinde daha ayrıntılı olarak önemli konu.
Önerilen Kaynaklar
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Selenium WebDriver'ı Farklı Popüler Tarayıcılarda Çalıştırma
- İlk WebDriver Komut Dosyamızın Uygulanması - Selenium WebDriver Eğitimi # 10
- Selenyum SSS
- Selenium WebDriver'da Uyarılar / Açılır Pencereler Nasıl İşlenir - Selenium Eğitimi # 16
- GeckoDriver Selenium Eğitimi: Selenium Projelerinde GeckoDriver Nasıl Kullanılır
- Selenium WebDriver'da Örtülü ve Açık Bekleme (Selenium Bekleme Türleri)