Gecko (Marionette) Sürücüsü Selenium: İndirin, Kurun, Firefox ile Kullanın

İçindekiler:

Anonim

Gecko Sürücüsü nedir?

Gecko terimi, Mozilla Firefox tarayıcısında yerleşik olan bir Web Tarayıcısı motorunu ifade eder. Gecko sürücüsü, Web Sürücüsü etkin istemciler (Eclipse, Netbeans, vb.) İle Mozilla Firefox tarayıcısı arasında bir proxy görevi görür. Kısacası, Gecko sürücüsü Selenium Web Sürücüsü testleri ile Mozilla Firefox tarayıcısı arasında bir bağlantı görevi görür.

Selenium 3'ten önce Mozilla Firefox tarayıcısı Selenium için varsayılan tarayıcıydı. Selenium 3'ten sonra, testçilerin Firefox'u açıkça GeckoDriver kullanarak kullanmak için komut dosyasını başlatması gerekir. Selenium, istekleri Marionette adlı bir protokole çeviren GeckoDriver'a istek göndermek için W3C Webdriver protokolünü kullanır. Firefox, Marionette protokolü biçiminde iletilen komutları anlayacak ve bunları çalıştıracaktır.

Gecko Sürücüsünü kullanmanın avantajı

Selenium Webdriver sürüm 2.53, Mozilla Firefox sürüm 47.0+ ile uyumlu değildir. Mozilla Firefox'un önceki sürümlerinde kullanılan Firefox sürücüsü kullanımdan kaldırılacak ve yalnızca GeckoDriver uygulaması kullanılacaktır. Bu nedenle, test uzmanları Mozilla Firefox 47.0+ sürümünde otomatik testler çalıştırmak istiyorlarsa GeckoDriver'ı kullanmaya zorlanırlar. Ama büyük soru - avantajı nedir?

Varsayılan Firefox sürücüsünün aksine GeckoDriver kullanmanın en büyük avantajı Uyumluluktur . GeckoDriver, Selenium ile iletişim kurmak için W3C WebDriver protokolünü kullanır . W3C, Web Sürücüsü için evrensel olarak tanımlanmış bir standarttır. Bu, Selenium Geliştiricilerinin (Selenium tabanını kodlayan kişiler) her tarayıcı sürümü için yeni bir Web Sürücüsü sürümü oluşturmasına gerek olmadığı anlamına gelir. Aynı Web Sürücüsü, birden çok tarayıcı sürümü için kullanılabilir. Bu nedenle, Firefox sürücüsünün önceki uygulamasına kıyasla GeckoDriver tercih edilir.

Gecko Sürücüsünü İndirin ve Yükleyin:

Gecko Sürücüsü, sisteme indirilebilen çalıştırılabilir bir dosya olarak mevcuttur. Aşağıdakiler, gecko sürücüsünü indirme adımlarının listesidir.

Adım 1) Bu sayfada https://github.com/mozilla/geckodriver/releases, İşletim sisteminize bağlı olarak GeckoDriver indirmesi için uygun sürümü seçin

Adım 2) ZIP dosyası indirme işlemi tamamlandıktan sonra, ZIP Dosyasının içeriğini bir dosya klasörüne çıkarın

Adım 3) Sürücüyü çıkardığınız konumu not edin. Konum, daha sonra sürücüyü somutlaştırmak için kullanılacaktır.

GeckoDriver'ı başlatmanın yolları:

GeckoDriver'ı başlatmanın üç farklı yolu vardır.

1. DesiredCapabilities'i kullanma:

İlk olarak, Gecko Sürücüsü için sistem özelliğini ayarlayın.

Sözdizimi:

System.setProperty ("webdriver.gecko.driver", "geckdriver.exe dosyasının yolu");

Misal:

System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");

Ardından, İstenen Yetenekleri ayarlayın.

İstenen Yetenekler Selenium'un tarayıcı adını, sürümünü ve işletim sistemini anlamasına ve otomatik testleri yürütmesine yardımcı olur. DesiredCapabilities sınıfını kullanarak gecko sürücüsünü ayarlama kodu aşağıdadır.

DesiredCapabilities yetenekleri = DesiredCapabilities.firefox ();yetenekler.setCapability ("kukla", doğru);

İşte tam kod

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities yetenekleri = DesiredCapabilities.firefox ();yetenekler.setCapability ("kukla", doğru);sürücü = yeni FirefoxDriver (yetenekler);

2. Kukla özelliğini kullanma:

Gecko sürücüsü, aşağıdaki gibi kukla özelliği kullanılarak da başlatılabilir.

System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");

Geko sürücüsü yukarıdaki yöntem kullanılarak başlatılırsa, istenen yetenekler için kod gerekli değildir .

3. FirefoxOptions'ı kullanma:

Mozilla Firefox 47+ sürümünün eski bir sistem olarak kukla sürücüsü vardır. Bundan yararlanarak, kukla sürücüsü aşağıdaki gibi Firefox Seçenekleri kullanılarak çağrılabilir.

FirefoxOptions seçenekleri = new FirefoxOptions ();options.setLegacy (true);

Gecko sürücüsünü kullanarak firefox'u başlatma kodu:

paket com.guru99.demo;org.junit.After içe aktar;import org.junit.Before;import org.junit.Test;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.remote.DesiredCapabilities;public class GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";genel WebDriver sürücüsü;@Öncepublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities yetenekleri = DesiredCapabilities.firefox ();yetenekler.setCapability ("kukla", doğru);sürücü = yeni FirefoxDriver (yetenekler);}@Ölçekpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Sonrapublic void endTest () {driver.quit ();}}

Kod Açıklaması:

@Before yöntemi:

Başlangıçta, gecko sürücüsünün sistem özelliğini geckdriver.exe dosya indirme konumuna ayarlamamız gerekir. Selenium'un Gecko Driver ile iletişim kurmak için Marionette protokolünü kullanması için kukla özelliğini true olarak ayarlamamız gerekiyor. Son olarak, İstenen Yetenekler nesnesini kullanarak Firefox tarayıcı örneğini başlatmamız gerekiyor.

Aşağıdaki ifadeler, yukarıdaki görevi gerçekleştirmeye yardımcı olur.

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities yetenekleri = DesiredCapabilities.firefox ();yetenekler.setCapability ("kukla", doğru);sürücü = yeni FirefoxDriver (yetenekler);

@Test metodu:

Selenium web sürücüsü tarafından sağlanan dahili "alma" yöntemini kullanarak kullanıcı tanımlı URL'ye gidiyoruz. Aşağıdaki ifade aynı sonuca ulaşmaya yardımcı olur.

driver.get ("http://demo.guru99.com/selenium/guru99home/");

@ Yöntemden sonra:

Son olarak, çıkış yöntemini kullanarak tarayıcı örneğini kapatıyoruz.

driver.quit ();

Gecko dışı için bir komut dosyasını Gecko olarak değiştirin:

Selenium 3'ten önce kullanılan gecko olmayan sürücü komut dosyası basitti. Firefox sürücüsünün bir örneğini oluşturmalı ve örnek değişkenini kullanmalıyız.

@Öncepublic void startBrowser () {sürücü = yeni FirefoxDriver ();}

Geko'ya dönüştürmek için bir satır kod eklemeniz yeterlidir.

@Öncepublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");sürücü = yeni FirefoxDriver ();}

Gecko Sürücüsü kullanılırken genel istisnalar meydana geldi:

Aşağıda, Gecko Sürücüsünü kullanırken ve çözünürlükle ortaya çıkan genel istisnaların bir listesi verilmiştir.

1. Çalıştırılabilir sürücünün yolu webdriver.gecko.driver sistem özelliği tarafından ayarlanmalıdır:

Bu istisna, kullanıcı gecko sürücüsü için sistem özelliğini ayarlamadan Firefox sürücüsünün örneğini oluşturmaya çalıştığında ortaya çıkar. Bu genellikle Selenium 3'ten Selenium'a önceki sürümlerde yapılan değişikliklerin farkında olmayan Selenium'a yeni başlayanlar tarafından yapılır.

Yukarıdaki istisnanın çözümü, aşağıdaki gibi geckodriver.exe dosyasının konumu ile gecko sürücüsü için sistem özelliğini ayarlamaktır.

System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ geckodriver.exe");

Mozilla Firefox sürücüsünün bir örneğini oluşturmadan önce gecko sürücüsünün özelliğini ayarlamanız gerektiğini lütfen unutmayın.

2. Firefox Bağlı Değil İstisnası:

org.openqa.selenium.firefox.NotConnectedException: 45000 ms sonra 7055 numaralı bağlantı noktasında 127.0.0.1 ana bilgisayara bağlanılamadı.

Bu istisna genellikle Firefox sürümü en son sürüme yükseltildiğinde ortaya çıkar. Bu istisnanın çözümü, selenyum jar dosyasını ve gecko sürücüsünü en son sürüme güncellemek ve aynısını kullanmaktır.

3. Oturum Yaratılmadı İstisna:

org.openqa.selenium.SessionNotCreatedException: Yeni uzak oturum oluşturulamıyor.

Bu istisna, Selenium ve Gecko sürücüsü arasındaki uyumluluk sorunları nedeniyle oluşur. Gecko sürücüsü, Firefox sürüm 47 veya üzeri ile çalışır. Firefox sürümünü 47 veya üstüne güncelleyerek çözülebilir.

4. Bağlantı Reddedildi İstisnası:

WebDriver İstisnası: Bağlantı Reddedildi

Bu istisna, web sürücüsü Firefox ile bağlantı kuramadığında oluşturulan mesajdır. Aşağıdaki tekniklerden herhangi biri kullanılarak çözülebilir.

  • Web sürücüsünün önceki örneklerini yok etmek için driver.quit () yöntemini kullanın
  • Otomatik testlerinizi yürütmeden önce tarayıcı önbelleğini temizleyin
  • Eclipse IDE içinde proje çalışma alanını temizleyin
  • Her zaman selenium gecko sürücüsünün en son sürümünü ve Firefox tarayıcısının en son sürümünü kullanın