how run selenium webdriver different popular browsers
Selenium yalnızca web tabanlı uygulamaları destekler ve bunları açmak için bir tarayıcıya ihtiyacımız var. Selenium, test otomasyonu için çeşitli tarayıcıları destekleyebilir.
Bu eğitimde, piyasada bulunan farklı tarayıcılar için sürücülerin nasıl kurulacağını açıklayacağız.
Mevcut sektörde, yaygın olarak kullanılan yalnızca üç popüler tarayıcı vardır, yani Google Chrome, Mozilla Firefox ve Internet Explorer. Ancak Selenium diğer tarayıcıları da destekler. Komut dizimizi farklı tarayıcılarda çalıştırmak için o tarayıcının sürücüsüne ihtiyacımız var.
=> Tüm Selenium Eğitimlerini Buradan Okuyun
Ne öğreneceksin:
- Farklı Tarayıcılar İçin Sürücüler Nasıl Kurulur
- Selenium WebDriver Kullanarak Çapraz Tarayıcı Testi
- Sonuç
Farklı Tarayıcılar İçin Sürücüler Nasıl Kurulur
Önerilen Araç:
# 1) LambdaTest
Selenium otomasyon testini ölçeklenebilir, güvenli ve güvenilir bulut tabanlı bir Selenium Grid üzerinde çevrimiçi gerçekleştirin. Selenium test otomasyonunuzu hızlandırın aynı zamanda 2000'den fazla masaüstü ve mobil tarayıcı ortamının çevrimiçi altyapısını test ederek test kapsamınızı genişletin.
Selenium otomasyonuna ilk başladığımızda ilk kod satırımız şu şekilde geliyor:
WebDriver sürücüsü = yeni FireFoxDriver ();
Bu, WebDriver'ın bir arayüz olduğu ve tipi bir arayüz olan bir referans değişkeni (sürücü) tanımladığımız anlamına gelir.
Şimdi, ona atadığımız herhangi bir nesne, bir sınıfın bir örneği (FireFoxDriver) veya bu arayüzü uygulayan diğer sürücüler olmalıdır. Bizim durumumuzda, FireFoxDriver bir sınıftır ve arayüz WebDriver'dır.
Tüm sürücü kurulumumuz tamamlandığında, aşağıdaki gibi herhangi bir Selenium komutunu çalıştırırız:
driver.getTitle ();
Ekran görüntüsüne bakın:
yönlendirici için güvenlik anahtarı nedir
Şimdi olan şey, dahili olarak bir HTTP isteğinin oluşturulması ve tanımladığımız belirli tarayıcı sürücüsüne gönderilmesidir, tarayıcı sürücüsü bu HTTP sunucusunu HTTP isteklerini almak için kullanır ve Selenium komutunu uygulamak için gereken adımları belirler.
Oluşturduğumuz mantığımız tarayıcıda çalıştırılır, ardından yürütme sonucu HTTP sunucusuna geri gönderilir ve tekrar otomasyon betiğine durumu geri gönderir.
Böylece, sürücüyü ayarladıktan sonra, sürücü sınıfının tüm yerleşik yöntemlerine aşağıdaki gibi erişebiliriz:
- findElement ();
- kapat();
- getClass (); ve daha fazlası
Bakın Ekran Görüntüsü:
Bu yöntemlere erişmek için ' sürücü. 'Düzenleyicide' ve tüm yöntemleri gösterecek ya da 'ctrl + boşluk' tuşuna basabilirsiniz ve size yöntemleri gösterecektir.
Ekran görüntüsüne bakın:
Bazen “ctrl + boşluk” tuşuna bastığınızda yerleşik yöntemlere erişilemez. Ardından, Ortam Değişkeninde yaptığınız JAVA_HOME yol ayarlarınızı kontrol etmeniz ve doğru olduklarından emin olmanız gerekir.
Ortam Değişkenini kurma adımları:
- Denetim Masası'na gidin -> Sistem'i tıklayın
- Gelişmiş Sistem Ayarlarına Git
- Ortam Değişkenleri düğmesini tıklayın
- Yeni düğmeye tıklayarak JAVA_HOME yolunu ayarlayın.
Selenium, Selenium WebDriver jar dosyasında bulunan varsayılan Mozilla Firefox sürücüsüyle birlikte gelir. Bu nedenle Firefox sürücüsünü aramak için herhangi bir kurulum gerekmez. Diğer tarayıcıları kullanmak istiyorsak, sistem özelliğini ayarlamamız gerekir.
Önerilen okuma => Selenium Grid kullanarak Çapraz Tarayıcı Testi
Selenium WebDriver Kullanarak Çapraz Tarayıcı Testi
Şimdi, aşağıda belirtilen tarayıcılarda sürücülerin kurulumunu ve çalıştırılmasını göreceğiz:
# 1) Mozilla Firefox
#iki) Google Chrome
# 3) Internet Explorer
# 4) Opera
# 5) Ghost Driver veya PhantomJS
# 6) HTML Birimi
Bahsedilen tarayıcıların sürücüleri (PhantomJS ve HTML Unit hariç - bunlar için aşağıdan kontrol edin) buradan indirilebilir: SelenyumHQ
Yukarıda bahsedilen farklı tarayıcıların farkında olduğunuzu varsayarsak, şimdi ne olduğunu açıklayacağım Hayalet sürücü ve HTML Birimi sürücüsü işlevselliği ve bunları komut dosyanız için nasıl ayarlayacağınız.
# 1) HTML Birim Sürücüsü
Bu sürücüyü kullanarak Headless Browser Testing yapabiliriz, bu da dahili olarak çalışırken görebileceğiniz bir GUI olmadığı anlamına gelir. Ve normal tarayıcılarda yaptığınız gibi tüm işlemleri gerçekleştiremezsiniz.
Genel olarak, test için HTML Birim Sürücüsü tavsiye edilmez. Bununla birlikte, daha hızlı olduğu için kullanabiliriz, WebDriver'ın en hafif uygulaması, bir web sayfasının içeriğini başka bir programa veya komut dosyasına aktarmak için test verileri oluşturmak için kullanılır.
HTML Birim Sürücüsünü kullanmak için herhangi bir ek API veya jar dosyası yüklemeye gerek yoktur. Selenium sunucusu bağımsız jar dosyasına sahip olduğunuzda bunu kullanabilirsiniz.
Aşağıdaki koda bakın:
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
Çıktı : Facebook - Giriş Yap veya Kaydol
GEÇTİ : doğrulamaFacebookTitle
HTML Birim sürücüsü, jquery veya javascript veya HTML 5 kullanan karmaşık uygulamalar için önerilmez. Varsayılan olarak, javascript'i desteklemez. Bu nedenle, onu desteklemek için doğru koşulu vermelisiniz.
# 2) PhantomJS Sürücüsü
PhantomJS tarayıcısı, Başsız Tarayıcı Testi gerçekleştirmek için de kullanılır. Bir JavaScript API kullanır. Başsız Web Sitesi Testi için kullanabilir ve web sayfalarına erişebilirsiniz. HTML Birim Sürücüsüne göre bir avantajı, ekran görüntülerini yakalayabilmesidir. Bu, testinizin arka planda çalışacağı ve ekran görüntülerini yakalayacağı anlamına gelir.
PhantomJS tarayıcısını Selenium WebDriver ile kullanmak için GhostDriver'ı kullanmalı ve indirmeliyiz. PhantomJS tarayıcısı için basit JS'de WebDriver kablo protokolünün bir uygulamasıdır. Şimdi PhantomJS'nin en son sürümünde GhostDriver'ı PhantomJS ile entegre ettiler. Bu nedenle, şimdi ayrı olarak kurmamız gerekmiyor.
PhantomJs.exe dosyasını buradan indirin: PhantomJs
PhantomJS'yi çalıştırmak için PhantomJS sürücüsüne ihtiyacımız var. İndirme: {link: PhantomJS sürücüsü
Ve betiği çalıştırdığımızda PhantomJs.binary.path özellik dosyasını ayarlamamız gerekir.
Aşağıdaki koda bakın:
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
Çıktı : https://www.facebook.com/
GEÇTİ: doğrulamaFacebookTitle
# 3) Mozilla Firefox Sürücüsü
Firefox tarayıcısında WebDriver nasıl çalıştırılır:
Firefox Sürücüsünü çağırmak için ek jar dosyalarını yüklemeye veya yapılandırmaya gerek yoktur. Selenium WebDriver'ın desteklediği varsayılan sürücüdür.
Yürütme için aşağıdaki koda bakın:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
Çıktı : Eşleşen sayfa başlığı
GEÇTİ : Test_Gmail_Login
# 4) Google Chrome Sürücüsü
WebDriver Chrome tarayıcısında nasıl çalıştırılır:
Google Chrome Sürücüsünü aramak için önce sürücüyü indirin, ardından aşağıdaki kodu kullanarak sistem özelliğini ayarlayın:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
Çıktı : Rediff.com'a hoş geldiniz
Rediff.com: Çevrimiçi Alışveriş, Rediffmail, Son Hindistan Haberleri, İş, Bollywood, Spor, Hisse Senedi, Canlı Kriket Skoru, Para, Film İncelemeleri
GEÇTİ : Test_Rediff_Alert
Ayrıca oku=> Selenyum öğreticisi - Chrome ve IE Tarayıcılarda Öğeleri Bulun
# 5) Internet Explorer Sürücüsü
IE tarayıcısında WebDriver nasıl çalıştırılır:
Internet Explorer Sürücüsünü çağırmak için sürücüyü indirin ve bir sistem özelliği ayarlayın.
Aşağıdaki koda bakın:
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
Çıktı : Google
GEÇTİ : ieDriver
# 6) Opera Sürücüsü
Opera Sürücüsünü aramak için sürücüyü indirin ve sistem özelliğini ayarlayın.
Aşağıdaki koda bakın:
java bir diziden bir öğe nasıl kaldırılır
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*(@id='gmail-create-account')')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
Çıktı : Bir hesap oluşturun
GEÇTİ : operaDriver
Ayrıca oku=> Selenium'da TestNG Ek Açıklamaları
Sonuç
Bu eğitimde, çeşitli tarayıcılar için sürücülerin nasıl kurulup kullanılacağını ele aldım.
HTML Unit Driver ve PhantomJS Driver'ın yaygın olarak kullanılan diğer tarayıcılardan ne kadar farklı olduğunu gördük. Bunun arkasındaki sebep, Google Chrome ve diğerleri gibi yaygın gezinme için kullanılmamalarıdır; bunun yerine dahili olarak çalışırlar ve GUI'yi desteklemediği için komutlarımızı daha hızlı yürütürler. PhantomJS ile sunucu tarafı komut dosyası da yapabiliriz.
Artık sürücüleri nasıl kuracağımızı ve çeşitli tarayıcılarda çalıştırmayı anladığımıza göre, bunu neden yaptığımızı netleştirmemiz gerekiyor. Hepinizin bildiği gibi Selenium yalnızca web tabanlı uygulamaları destekliyor ve onları açmak için bir tarayıcıya ihtiyacımız var.
Bu tarayıcıları açmak için çeşitli sürücüler (yukarıda tartışılmıştır) mevcuttur. WebDriver, içinde tanımlanan tüm soyut yöntemleri içeren bir arayüzdür. Bu nedenle, görevlerimizi gerçekleştirmek için bu eğitimde tartışılan bu yöntemleri çağırıyoruz.
Bu eğitimle ilgili herhangi bir sorunuz / yorumunuz varsa bize bildirin.
Önerilen Kaynaklar
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- İ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
- Selenium WebDriver'da Örtülü ve Açık Bekleme (Selenium Bekleme Türleri)
- Selenium WebDriver'da Kapsam Raporları Oluşturma Kılavuzu
- GeckoDriver Selenium Eğitimi: Selenium Projelerinde GeckoDriver Nasıl Kullanılır