implementation our first webdriver script selenium webdriver tutorial 10
Önceki iki öğreticide, sizi temel mimari ile tanıştırdık ve WebDriver'ın özellikleri ve Selenium WebDriver ile başlamak için gerekli altyapı . Sistemi gerekli tüm yardımcı programlar ve paketlerle kurmuş olabileceğinizi varsayarak, ilk WebDriver test komut dosyamızın uygulanmasıyla daha da ileriye gideceğiz.
Bu nedenle, sonuç ile ilerlemek Selenium WebDriver öğreticisi WebDriver betiği oluşturacağız. Ayrıca ışığı temel ve yaygın olarak kullanılan WebDriver komutları . Ayrıca şunları da öğrenirdik UI öğelerinin konumlandırma stratejileri ve bunların test komut dosyalarına dahil edilmesi. Ayrıca, Komutları Al'ı ayrıntılı olarak inceleyeceğiz.
Ne öğreneceksin:
- Komut Dosyası Oluşturma
- Kod İzlenecek Yol
- Test uygulaması
- Web Öğelerini Bulma
- Konum Bulucu Türleri ve Sözdizimi
- Sonuç
- Önerilen Kaynaklar
Komut Dosyası Oluşturma
Komut dosyası oluşturmak için, önceki eğiticide oluşturulan 'Learning_Selenium' projesini ve test edilen uygulama olarak 'gmail.com' u (AUT) kullanacağız.
Senaryo:
- Tarayıcıyı başlatın ve 'Gmail.com' u açın.
- Sayfanın başlığını doğrulayın ve doğrulama sonucunu yazdırın.
- Kullanıcı adını ve Şifreyi girin.
- Oturum aç düğmesine tıklayın.
- Web tarayıcısını kapatın.
Aşama 1: 'Learning_Selenium' projesi altında 'Gmail_Login' adlı yeni bir java sınıfı oluşturun.
Adım 2: Aşağıdaki kodu kopyalayıp “Gmail_Login.java” sınıfına yapıştırın.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Yukarıdaki kod, daha önce sunulan metinsel senaryoya eşdeğerdir.
Kod İzlenecek Yol
İçe Aktarma İfadeleri:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Gerçek komut dosyası oluşturmadan önce, yukarıdaki paketleri içe aktarmamız gerekir:
ithalat org.openqa.selenium.WebDriver - Yeni bir web tarayıcısı oluşturmak için gerekli olan WebDriver arayüzüne başvurur.
ithalat org.openqa.selenium.firefox.FirefoxDriver - Gerekli olan FirefoxDriver sınıfını referanslar, WebDriver arayüzü kullanılarak tarayıcı örneğinde Firefox'a özgü bir sürücünün örneğini oluşturur.
ithalat org.openqa.selenium.WebElement - Yeni bir web öğesini somutlaştırmak için gereken WebElement sınıfına referanslar.
ithalat org.openqa.selenium.By - Konum belirleyici türünün çağrıldığı By sınıfına başvurular.
Projemiz büyüdükçe ve büyüdükçe, excel manipülasyonları, veritabanı bağlantısı, günlük kaydı, iddialar vb. Gibi daha karmaşık ve farklı işlevler için birkaç başka paket sunmak zorunda kalabileceğimiz açık ve mantıklıdır.
ücretsiz anime izlemek için iyi web siteleri
Nesne Örnekleme
WebDriver sürücüsü = yeni FirefoxDriver ();
WebDriver arayüzü için bir referans değişkeni oluşturuyoruz ve FirefoxDriver sınıfını kullanarak bunu somutlaştırıyoruz. Varsayılan bir Firefox profili başlatılacak, bu da Firefox örneğiyle hiçbir uzantı ve eklentinin yüklenmeyeceği ve güvenli modda çalışacağı anlamına gelir.
Web tarayıcısını başlatma
driver.get (appUrl);
KİME almak() yöntem, yeni bir web tarayıcısı örneği başlatmak için WebDriver örneğinde çağrılır. Dize karakter dizisi bir parametre olarak almak() yöntem, başlatılan web tarayıcısı örneğini uygulama URL'sine yeniden yönlendirir.
Tarayıcı Penceresini Büyüt
driver.manage (). window (). maximize ();
maksimize () yöntem, uygulama URL'sine yeniden yönlendirildikten hemen sonra tarayıcı penceresini büyütmek için kullanılır.
Sayfa başlığını getir
driver.getTitle ();
getTitle () yöntem, mevcut web sayfasının başlığını getirmek için kullanılır. Böylece, getirilen başlık bir dizge değişkenine yüklenebilir.
Beklenen ve Gerçek Değerler arasında Karşılaştırma:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Yukarıdaki kod, gerçek değeri ve beklenen değeri karşılaştırmak için java oluşturduğu koşullu ifadeyi kullanır. Elde edilen sonuca bağlı olarak, print ifadesi yürütülecektir.
WebElement Örnekleme
WebElement username = driver.findElement (By.id ('E-posta'));
Yukarıdaki açıklamada, WebElement referansını aşağıdaki gibi örneklendiriyoruz: 'Driver.findElement (By.id (' E-posta '))'. Bu nedenle, kullanıcı adı, üzerinde bazı eylemler gerçekleştirmek istediğimizde kullanıcı arayüzündeki E-posta metin kutusuna başvurmak için kullanılabilir.
Komutu Temizle
username.clear ();
Clear () yöntemi / komutu, varsa metin kutusunda bulunan değeri temizlemek için kullanılır. Ayrıca varsayılan yer tutucu değerini de temizler.
sendKeys Komutu
username.sendKeys ('TestSelenium');
sendKeys () method / command, metin kutusuna belirtilen değeri (parantez içinde) girmek / yazmak için kullanılır. Dikkat edin sendKeys () yöntem, UI öğesine karşılık gelen öğe özelliği yardımıyla örneklenen WebElement nesnesinde çağrılır.
Yukarıdaki kod bloğu, Gmail uygulamasındaki E-posta metin kutusunun içine 'TestSelenium' dizesini girer.
sendKeys WebDriver komut dosyalarında en çok kullanılan komutlardan biridir.
4 yıllık deneyim için selenyum mülakat soruları
Komutu tıklayın
SignInButton.click ();
Sevmek sendKeys (), tıklayın () web öğeleriyle etkileşimde bulunmak için aşırı kullanılan bir başka komuttur. Tıklayın() command / method, web sayfasında bulunan web öğesine tıklamak için kullanılır.
Yukarıdaki kod bloğu, Gmail uygulamasında bulunan 'Oturum aç' düğmesini tıklar.
Notlar:
- SendKeys () yönteminin aksine, click () yöntemleri hiçbir zaman parametreleştirilemez.
- Bazen, bir web öğesine tıklamak yeni bir sayfayı tamamen yükleyebilir. Böylelikle bu tür durumları sürdürmek için click () yöntemi sayfa yüklenene kadar bekleyecek şekilde kodlanmıştır.
Web Tarayıcısını kapatın
driver.close ();
Close (), geçerli tarayıcı penceresini kapatmak için kullanılır.
Java Programını Sonlandırın
System.exit (0);
Exit () yöntemi, Java programını zorla sonlandırır. Bu nedenle, Java Programını sonlandırmadan önce tüm tarayıcı örneklerini kapatmayı unutmayın.
Test uygulaması
Test komut dosyası veya basitçe java programı aşağıdaki şekillerde çalıştırılabilir:
# 1. Eclipse’in menü çubuğunun altında, test komut dosyasını yürütmek için bir simge vardır. Aşağıdaki şekle bakın.
Yalnızca seçilen sınıfın yürütüleceğini not edin.
#iki. Düzenleyici içinde sınıfın herhangi bir yerine sağ tıklayın, 'Farklı Çalıştır' seçeneğini seçin ve 'Java Uygulaması' na tıklayın.
# 3. Test komut dosyasını çalıştırmak için başka bir kısayol ise - ctrl + F11 tuşlarına basın.
Windows 10 için en iyi ücretsiz optimize edici
Yürütme döngüsünün sonunda, 'Test komut dosyası başarıyla yürütüldü.' Yazdırma ifadesi. konsolda bulunabilir.
Web Öğelerini Bulma
WebDriver'daki web öğeleri, Selenium IDE'nin önceki öğreticilerinde yaptığımız gibi bulunabilir ve incelenebilir. Selenium IDE ve Firebug, GUI'deki web öğesini incelemek için kullanılabilir. Web öğelerini bulmak için Selenium IDE kullanılması şiddetle tavsiye edilir. Web öğesi başarıyla bulunduğunda, hedef değeri kopyalayıp WebDriver koduna yapıştırın. Yer belirleyici türleri ve yer belirleme stratejileri, sözdizimi ve uygulamaları dışında hemen hemen aynıdır.
WebDriver'da, web öğeleri dinamik bulucular yardımıyla bulunur (findElement (By.locatorType ('konum belirleyici değeri'))).
Basit kod:
driver.findElement (By.id ('E-posta'));
Konum Bulucu Türleri ve Sözdizimi
Bulucu Türü | Sözdizimi | Açıklama |
---|---|---|
cssSelector | driver.findElement (By.cssSelector ('CSS Seçici')) | Değerine göre bulun CSS seçici |
İD | driver.findElement (By.id ('ID_of_Element')) | Değerine göre bulun 'id' özelliği |
sınıf adı | driver.findElement (By.className ('Sınıf_Etkinliği')) | Değerine göre bulun 'sınıf' özelliği |
linkText | driver.findElement (By.linkText ('Metin')) | Değerine göre bulun köprünün metni |
kısmiLinkText | driver.findElement (By.partialLinkText ('Kısmi Metin')) | Değerine göre bulun köprünün alt metni |
isim | driver.findElement (İsimle ('Öğenin_ Adı')) | Değerine göre bulun 'Ad' özelliği |
xpath | driver.findElement (By.xpath ('Xpath')) | Değere göre bul xpath'in |
etiket adı | driver.findElement (By.tagName ('input')) | Değerine göre bulun etiket adı |
Sonuç
Bu eğiticide, WebDriver ve Java kullanarak bir otomasyon komut dosyası geliştirdik. Ayrıca bir WebDriver komut dosyasını oluşturan çeşitli bileşenleri de tartıştık.
İşte bu Selenium WebDriver Eğitiminin püf noktaları:
- Gerçek betiklemeden önce, bir WebDriver betiği oluşturabilmek için birkaç paketi içe aktarmamız gerekir.
- ithalat openqa.selenium.By;
- ithalat openqa.selenium.WebDriver;
- ithalat openqa.selenium.WebElement;
- ithalat openqa.selenium.firefox.FirefoxDriver;
- KİME almak() yeni bir web tarayıcısı örneği başlatmak için kullanılan yöntem. Get () yöntemine parametre olarak iletilen karakter dizisi, başlatılan web tarayıcısı örneğini uygulama URL'sine yeniden yönlendirir.
- maksimize () yöntem, tarayıcı penceresini büyütmek için kullanılır.
- açık() yöntem, varsa metin kutusunda bulunan değeri temizlemek için kullanılır.
- sendKeys () yöntem, metin kutusuna belirtilen değeri girmek için kullanılır.
- Tıklayın() yöntemi, web sayfasında bulunan web öğesine tıklamak için kullanılır.
- WebDriver'da, web öğeleri Dinamik bulucular kullanılarak bulunabilir.
- Mevcut konum belirleyici türleri şunlardır:
- İD
- sınıf adı
- isim
- xpath
- cssSelector
- linkText
- kısmiLinkText
- etiket adı
Devam edersek, bir sonraki eğiticide, odağımızı TestNG olarak bilinen Otomasyon testine yardımcı olan bir çerçeveye kaydıracağız. Çerçeve tarafından sağlanan çeşitli ek açıklama türleri üzerinde ayrıntılı bir çalışmamız olacaktı.
Sonraki eğitim # 11 : Çerçevelere derinlemesine dalmadan önce, açık kaynak birim test aracı olan JUnit ile ilgili ayrıntıları göreceğiz. Programcıların çoğu, kolay olduğu ve test etmek için fazla çaba sarf etmediği için JUnit kullanıyor. Bu eğitim, JUnit ve selenyum komut dosyasında kullanımı hakkında bir fikir verecektir.
Okuyucular için bir açıklama: Selenium serisinin bir sonraki öğreticimiz işleme modundayken, okuyucular kendi temel WebDriver komut dosyalarını oluşturmaya başlayabilirler. Daha gelişmiş komut dosyaları ve kavramlar için, bu seride pek çok başka Selenium WebDriver öğreticilerimiz olacak.
WebDriver komut dosyalarını oluştururken veya çalıştırırken herhangi bir sorun yaşarsanız yorumlarda bize bildirin.
Önerilen Kaynaklar
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Eclipse ile WebDriver Tam Kurulum ve Kurulum - Selenium Eğitimi # 9
- Çeşitli Türlerde WebDriver Komutlarını Kullanarak Web Öğelerinin Görünürlüğünü Kontrol Edin - Selenium Eğitimi # 14
- Etkili Selenium Komut Dosyası Oluşturma ve Sorun Giderme Senaryoları - Selenium Eğitimi # 27
- Selenium WebDriver'da Uyarılar / Açılır Pencereler Nasıl İşlenir - Selenium Eğitimi # 16
- Günlüklerle Selenium Komut Dosyalarında Hata Ayıklama (Log4j Eğitimi) - Selenium Eğitimi # 26
- JUnit Framework'e Giriş ve Selenium Script'te Kullanımı - Selenium Tutorial # 11