Unduh Geckodriver untuk Firefox & Selenium
Apa itu GeckoDriver? Selenium?
Istilah Gecko adalah singkatan dari mesin Browser Web yang ada di dalam Mozilla Firefox browser. Gecko driver bertindak sebagai proxy antara klien yang mendukung Web Driver (Eclipse, Netbeans, dll.) dan Mozilla Firefox browser. Singkatnya, driver Gecko bertindak sebagai penghubung antara Selenium Tes Driver Web dan Mozilla Firefox Browser.
Sebelum Selenium 3, Mozilla Firefox browser adalah browser default untuk Selenium. Setelah Selenium 3, penguji perlu menginisialisasi skrip yang akan digunakan Firefox menggunakan GeckoDriver secara eksplisit. Selenium menggunakan protokol Webdriver W3C untuk mengirim permintaan ke GeckoDriver, yang menerjemahkannya ke dalam protokol bernama Marionette. Firefox akan memahami perintah yang dikirimkan dalam bentuk Mariprotokol onette dan menjalankannya.
Cara Download dan Install GeckoDriver di Selenium
Gecko Driver tersedia sebagai file yang dapat dieksekusi yang dapat diunduh ke sistem. Berikut ini adalah daftar langkah-langkah untuk mengunduh gecko driver.
Langkah 1 ) Pilih versi yang sesuai.
Di halaman ini https://github.com/mozilla/geckodriver/releases ,Pilih versi yang sesuai untuk unduhan GeckoDriver berdasarkan sistem operasi Anda
Langkah 2) Ekstrak file ZIP.
Setelah pengunduhan file ZIP selesai, ekstrak konten File ZIP ke dalam folder file
Langkah 3) Catat lokasinya.
Catat lokasi tempat Anda mengekstrak driver. Lokasi tersebut akan digunakan nanti untuk membuat driver.
Cara menginisialisasi GeckoDriver
Ada tiga cara berbeda untuk menginisialisasi GeckoDriver.
1. Menggunakan Kemampuan yang Diinginkan
Pertama, atur properti sistem untuk Gecko Driver.
sintaks:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Contoh:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Selanjutnya, atur Kemampuan yang Diinginkan.
Kemampuan yang Diinginkan membantu Selenium untuk memahami nama browser, versi dan sistem operasi untuk menjalankan pengujian otomatis. Di bawah ini adalah kode untuk mengatur driver tokek menggunakan kelas DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Berikut kode lengkapnya
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Menggunakan properti marionette
Driver Gecko juga dapat diinisialisasi menggunakan properti marionette seperti di bawah ini
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Jika driver tokek diinisialisasi menggunakan metode di atas, kode untuk kemampuan yang diinginkan adalah tidak diperlukan.
3. Menggunakan FirefoxOpsi
Mozilla Firefox versi 47+ memiliki driver marionette sebagai sistem lama. Memanfaatkan hal ini, pengemudi marionette dapat dipanggil menggunakan Firefox Pilihannya seperti di bawah ini
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Kode untuk meluncurkan Firefox menggunakan driver Gecko
package com.guru99.demo; import org.junit.After; 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"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("https://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Penjelasan Kode
@Sebelum metode
Awalnya, kita perlu mengatur properti sistem untuk driver tokek ke lokasi pengunduhan file geckdriver.exe. Kita perlu menyetel properti marionette ke true for Selenium untuk menggunakan Mariprotokol onette untuk berkomunikasi dengan Gecko Driver. Akhirnya, kita perlu memulai Firefox contoh browser menggunakan objek untuk Kemampuan yang Diinginkan.
Pernyataan di bawah ini membantu mencapai tugas di atas.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Metode pengujian
Kami menavigasi ke URL yang ditentukan pengguna menggunakan metode "dapatkan" bawaan yang disediakan oleh Selenium pengemudi web. Pernyataan di bawah ini membantu untuk mencapai hal yang sama.
driver.get("https://demo.guru99.com/selenium/guru99home/");
@Setelah metode
Terakhir, kami menutup instance browser menggunakan metode keluar.
driver.quit();
Ubah skrip untuk non-Gecko menjadi Gecko
Skrip driver non-gecko digunakan sebelumnya Selenium 3 sangat mudah. Kita perlu membuat sebuah instance dari Firefox driver dan gunakan variabel instan.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Untuk mengonversi ke tokek, Anda cukup menambahkan satu baris kode
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Pengecualian umum terjadi saat menggunakan Gecko Driver
Berikut ini adalah daftar pengecualian umum yang terjadi saat menggunakan Gecko Driver dan beserta penyelesaiannya.
Keuntungan menggunakan Gecko Driver
Selenium Webdriver versi 2.53 tidak kompatibel dengan Mozilla Firefox versi 47.0+. Itu Firefox driver yang digunakan di Mozilla versi sebelumnya Firefox akan dihentikan, dan hanya implementasi GeckoDriver yang akan digunakan. Oleh karena itu penguji terpaksa menggunakan GeckoDriver jika mereka ingin menjalankan pengujian otomatis di Mozilla Firefox versi 47.0+. Namun pertanyaan besarnya – apa keuntungannya?
Keuntungan utama menggunakan GeckoDriver dibandingkan dengan default Firefox pengemudi adalah kecocokan. GeckoDriver menggunakan Protokol WebDriver W3C untuk berkomunikasi dengan Selenium. W3C adalah standar yang ditetapkan secara universal untuk Driver Web. Ini berarti Selenium Pengembang (Orang yang membuat kode Selenium base) tidak perlu membuat versi baru Web Driver untuk setiap versi browser. Driver Web yang sama dapat digunakan untuk beberapa versi browser. Oleh karena itu, GeckoDriver lebih disukai dibandingkan implementasi sebelumnya Firefox sopir.