Apa itu Gecko Driver?
Istilah Gecko adalah singkatan dari mesin Web Browser yang ada di dalam browser Mozilla Firefox. Gecko driver bertindak sebagai proxy antara klien yang mendukung Driver Web (Eclipse, Netbeans, dll.) Dan browser Mozilla Firefox. Singkatnya, driver Gecko bertindak sebagai penghubung antara tes Selenium Web Driver dan browser Mozilla Firefox.
Sebelum Selenium 3, browser Mozilla Firefox adalah browser default untuk Selenium. Setelah Selenium 3, penguji perlu menginisialisasi skrip untuk menggunakan Firefox menggunakan GeckoDriver secara eksplisit. Selenium menggunakan protokol W3C Webdriver untuk mengirim permintaan ke GeckoDriver, yang menerjemahkannya menjadi protokol bernama Marionette. Firefox akan memahami perintah yang dikirimkan dalam bentuk protokol Marionette dan menjalankannya.
Keuntungan menggunakan Gecko Driver
Selenium Webdriver versi 2.53 tidak kompatibel dengan Mozilla Firefox versi 47.0+. Driver Firefox yang digunakan pada versi Mozilla Firefox sebelumnya akan dihentikan, dan hanya implementasi GeckoDriver yang akan digunakan. Karenanya penguji dipaksa untuk menggunakan GeckoDriver jika mereka ingin menjalankan pengujian otomatis pada Mozilla Firefox versi 47.0+. Tapi pertanyaan besarnya - apa keuntungannya?
Keuntungan utama menggunakan GeckoDriver sebagai lawan dari driver Firefox default adalah Kompatibilitas . GeckoDriver menggunakan protokol W3C WebDriver untuk berkomunikasi dengan Selenium. W3C adalah standar yang ditentukan secara universal untuk Web Driver. Ini berarti Pengembang Selenium (Orang yang mengkodekan basis Selenium) tidak perlu membuat versi baru Driver Web untuk setiap versi browser. Driver Web yang sama dapat digunakan untuk beberapa versi browser. Karenanya, GeckoDriver lebih disukai dibandingkan dengan implementasi driver Firefox sebelumnya.
Unduh dan Instal Gecko Driver:
Gecko Driver tersedia sebagai file yang dapat dieksekusi yang dapat diunduh di sistem. Berikut ini adalah daftar langkah-langkah untuk mendownload driver tokek.
Langkah 1) Di halaman ini https://github.com/mozilla/geckodriver/releases, Pilih versi yang sesuai untuk unduhan GeckoDriver berdasarkan sistem operasi Anda
Langkah 2) Setelah pengunduhan file ZIP selesai, ekstrak konten File ZIP ke folder file
Langkah 3) Catat lokasi tempat Anda mengekstrak driver. Lokasi akan digunakan nanti untuk membuat contoh driver.
Cara untuk menginisialisasi GeckoDriver:
Ada tiga cara berbeda untuk menginisialisasi GeckoDriver.
1. Menggunakan DesiredCapabilities:
Pertama, setel properti sistem untuk Gecko Driver.
Sintaksis:
System.setProperty ("webdriver.gecko.driver", "Jalur ke file geckdriver.exe");
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.
Kemampuan DesiredCapabilities = DesiredCapabilities.firefox ();ability.setCapability ("marionette", true);
Ini kode lengkapnya
System.setProperty ("webdriver.gecko.driver", driverPath);Kemampuan DesiredCapabilities = DesiredCapabilities.firefox ();ability.setCapability ("marionette", true);driver = FirefoxDriver baru (kemampuan);
2. Menggunakan properti marionette:
Pengemudi tokek 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 tidak diperlukan.
3. Menggunakan FirefoxOptions:
Mozilla Firefox versi 47+ memiliki driver marionette sebagai sistem lawas. Memanfaatkan ini, driver marionette dapat dipanggil menggunakan Opsi Firefox seperti di bawah ini
Opsi FirefoxOptions = FirefoxOptions baru ();options.setLegacy (true);
Kode untuk meluncurkan firefox menggunakan driver Gecko:
paket com.guru99.demo;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.firefox.FirefoxDriver;impor org.openqa.selenium.remote.DesiredCapabilities;kelas publik GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";pengemudi WebDriver publik;@Sebelumpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);Kemampuan DesiredCapabilities = DesiredCapabilities.firefox ();ability.setCapability ("marionette", true);driver = FirefoxDriver baru (kemampuan);}@Ujipublic void navigationToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Setelahpublic void endTest () {driver.quit ();}}
Penjelasan Kode:
Metode @Before:
Awalnya, kita perlu menyetel properti sistem untuk driver gecko ke lokasi pengunduhan file geckdriver.exe. Kita perlu menyetel properti marionette ke true agar Selenium menggunakan protokol Marionette untuk berkomunikasi dengan Gecko Driver. Terakhir, kita perlu memulai instance browser Firefox menggunakan objek untuk Kemampuan yang Diinginkan.
Pernyataan di bawah ini membantu mencapai tugas di atas.
System.setProperty ("webdriver.gecko.driver", driverPath);Kemampuan DesiredCapabilities = DesiredCapabilities.firefox ();ability.setCapability ("marionette", true);driver = FirefoxDriver baru (kemampuan);
@Tes metode:
Kami menavigasi ke URL yang ditentukan pengguna menggunakan metode "get" bawaan yang disediakan oleh driver web Selenium. Pernyataan di bawah ini membantu mencapai hal yang sama.
driver.get ("http://demo.guru99.com/selenium/guru99home/");
@Setelah metode:
Terakhir, kami menutup instance browser menggunakan metode berhenti.
driver.quit ();
Ubah skrip untuk non- Gecko menjadi Gecko:
Skrip driver non-tokek yang digunakan sebelum Selenium 3 sangat mudah. Kita perlu membuat instance driver Firefox dan menggunakan variabel instance.
@Sebelumpublic void startBrowser () {driver = baru FirefoxDriver ();}
Untuk berubah menjadi tokek, Anda hanya perlu menambahkan satu baris kode
@Sebelumpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");driver = baru FirefoxDriver ();}
Pengecualian umum terjadi saat menggunakan Gecko Driver:
Berikut adalah daftar pengecualian umum yang terjadi saat menggunakan Gecko Driver dan dengan resolusi.
1. Jalur ke driver yang dapat dieksekusi harus disetel oleh properti sistem webdriver.gecko.driver:
Pengecualian ini terjadi ketika pengguna mencoba untuk memberi contoh pengandar Firefox tanpa menyetel properti sistem untuk pengandar tokek. Ini biasanya dilakukan oleh pemula hingga Selenium yang tidak mengetahui perubahan yang dilakukan dari Selenium 3 ke Selenium versi sebelumnya.
Resolusi untuk pengecualian di atas adalah mengatur properti sistem untuk driver tokek 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 driver Mozilla Firefox.
2. Firefox Not Connected Exception:
org.openqa.selenium.firefox.NotConnectedException: Tidak dapat terhubung ke host 127.0.0.1 pada port 7055 setelah 45000 ms.
Pengecualian ini biasanya terjadi ketika versi Firefox telah ditingkatkan ke versi terbaru. Resolusi untuk pengecualian ini adalah memperbarui file jar selenium dan driver gecko ke versi terbaru dan menggunakan yang sama.
3. Sesi Tidak Dibuat Pengecualian:
org.openqa.selenium.SessionNotCreatedException: Tidak dapat membuat sesi jarak jauh baru.
Pengecualian ini terjadi karena masalah kompatibilitas antara Selenium dan driver Gecko. Pengemudi tokek bekerja dengan Firefox versi 47 atau lebih tinggi. Ini dapat diatasi dengan memperbarui versi Firefox ke 47 atau lebih tinggi.
4. Pengecualian Ditolak Koneksi:
Pengecualian WebDriver: Sambungan Ditolak
Pengecualian ini adalah pesan yang dihasilkan ketika driver web tidak dapat membuat koneksi dengan Firefox. Ini dapat diselesaikan dengan menggunakan salah satu dari teknik berikut.
- Gunakan metode driver.quit () untuk menghancurkan contoh sebelumnya dari web driver
- Bersihkan cache browser sebelum menjalankan tes otomatis Anda
- Bersihkan ruang kerja proyek dalam Eclipse IDE
- Selalu gunakan driver selenium gecko versi terbaru dan versi terbaru browser Firefox