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.

GeckoDriver masuk Selenium

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

Unduh dan Instal GeckoDriver di Selenium

Langkah 2) Ekstrak file ZIP.
Setelah pengunduhan file ZIP selesai, ekstrak konten File ZIP ke dalam folder file

Unduh dan Instal GeckoDriver di Selenium

Langkah 3) Catat lokasinya.
Catat lokasi tempat Anda mengekstrak driver. Lokasi tersebut akan digunakan nanti untuk membuat driver.

Unduh dan Instal GeckoDriver di Selenium

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.

Pengecualian ini terjadi ketika pengguna mencoba membuat instance Firefox driver tanpa mengatur properti sistem untuk driver tokek. Hal ini biasanya dilakukan oleh para pemula Selenium yang tidak mengetahui perubahan yang dilakukan Selenium 3 untuk Selenium versi sebelumnya.

Resolusi untuk pengecualian di atas adalah dengan mengatur properti sistem untuk driver gecko dengan lokasi file geckodriver.exe seperti di bawah ini

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

Harap dicatat bahwa Anda perlu mengatur properti driver tokek sebelum membuat instance Mozilla Firefox sopir.

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

Pengecualian ini biasanya terjadi ketika Firefox versi telah ditingkatkan ke versi terbaru. Resolusi untuk pengecualian ini adalah memperbarui file jar Selenium dan driver tokek ke versi terbaru dan menggunakan versi yang sama.

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

Pengecualian ini terjadi karena masalah kompatibilitas antar Selenium dan pengemudi Gecko. Pengemudi tokek bekerja dengan Firefox versi 47 atau lebih tinggi. Hal ini dapat diatasi dengan memperbarui Firefox versi ke 47 atau lebih tinggi.

WebDriver Exception: Connection Refused

Pengecualian ini adalah pesan yang dihasilkan ketika driver web tidak dapat membuat sambungan FirefoxMasalah ini dapat diselesaikan dengan menggunakan salah satu teknik berikut.

  • penggunaan driver.quit() metode untuk menghancurkan contoh driver web sebelumnya
  • Bersihkan cache browser sebelum menjalankan pengujian otomatis Anda
  • Bersihkan ruang kerja proyek di dalamnya Eclipse IDE
  • Selalu gunakan driver Selenium Gecko versi terbaru dan versi terbaru Firefox Browser

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.