Gecko Driver là gì ? Cách Tải xuống, Cài đặt, Sử dụng với Firefox

Gecko Driver là gì?

Thuật ngữ Gecko là viết tắt của một công cụ Trình duyệt web được tích hợp sẵn trong trình duyệt Mozilla Firefox. Gecko Driver hoạt động như một proxy giữa các máy khách hỗ trợ Web Driver (Eclipse, Netbeans, v.v.) và trình duyệt Mozilla Firefox. Nói tóm lại, Gecko Driver hoạt động như một liên kết giữa các bài kiểm tra Web Driver Selenium và trình duyệt Mozilla Firefox. Hãy cùng blogtiendientu tham khảo nhé.

==>> webdriver.gecko.driver là gì

Video Gecko Driver

Trước Selenium 3, trình duyệt Mozilla Firefox là trình duyệt mặc định cho Selenium. Sau Selenium 3, người kiểm tra cần khởi tạo tập lệnh để sử dụng Firefox bằng GeckoDriver một cách rõ ràng. Selenium sử dụng giao thức W3C Webdriver để gửi các yêu cầu đến GeckoDriver, giao thức này chuyển chúng thành một giao thức có tên Marionette. Firefox sẽ hiểu các lệnh được truyền dưới dạng giao thức Marionette và thực thi chúng.

Lợi thế của việc sử dụng Gecko Driver

Selenium Webdriver phiên bản 2.53 không tương thích với Mozilla Firefox phiên bản 47.0+. Driver Firefox được sử dụng trong các phiên bản Mozilla Firefox trước đó sẽ bị ngừng và chỉ triển khai GeckoDriver sẽ được sử dụng. Do đó, người kiểm tra buộc phải sử dụng GeckoDriver nếu họ muốn chạy kiểm tra tự động trên Mozilla Firefox phiên bản 47.0+. Nhưng câu hỏi lớn – lợi thế là gì?

Ưu điểm chính của việc sử dụng GeckoDriver trái ngược với Driver Firefox mặc định là Khả năng tương thích . GeckoDriver sử dụng giao thức W3C WebDriver để giao tiếp với Selenium. W3C là một tiêu chuẩn được xác định chung cho Web Driver. Điều này có nghĩa là Nhà phát triển Selenium (Những người viết mã cơ sở Selenium) không cần tạo phiên bản Web Driver mới cho mỗi phiên bản trình duyệt. Có thể sử dụng cùng một Web Driver cho nhiều phiên bản trình duyệt. Do đó, GeckoDriver được ưu tiên hơn so với việc triển khai Driver Firefox trước đó.

Tải xuống và cài đặt Gecko Driver:

Gecko Driver có sẵn dưới dạng tệp thực thi có thể tải xuống trên hệ thống. Sau đây là danh sách các bước để tải xuống Gecko Driver.

Bước 1) Tại trang này https://github.com/mozilla/geckodriver/releases , Chọn phiên bản thích hợp để tải xuống GeckoDriver dựa trên hệ điều hành của bạn

Gecko Driver là gì ? Cách Tải xuống, Cài đặt, Sử dụng với Firefox

Bước 2) Sau khi quá trình tải xuống tệp ZIP hoàn tất, hãy giải nén nội dung của tệp ZIP vào một thư mục tệp

Bước 3) Ghi lại vị trí mà bạn đã trích xuất Driver. Vị trí sẽ được sử dụng sau đó để khởi tạo Driver.

Các cách khởi tạo GeckoDriver:

Có ba cách khác nhau để khởi tạo GeckoDriver.

1. Sử dụng Khả năng mong muốn:

Đầu tiên, đặt thuộc tính hệ thống cho Gecko Driver.

Cú pháp:

System.setProperty(“webdriver.gecko.driver”,”Path to geckdriver.exe file”);

Thí dụ:

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

Tiếp theo, đặt Khả năng mong muốn.

Khả năng mong muốn giúp Selenium hiểu tên trình duyệt, phiên bản và hệ điều hành để thực hiện các bài kiểm tra tự động. Dưới đây là mã để thiết lập Driver tắc kè bằng cách sử dụng lớp Khả năng mong muốn.

DesiredCapabilities capabilities = DesiredCapabilities.firefox();

capabilities.setCapability(“marionette”,true);

Đây là mã hoàn chỉnh

System.setProperty(“webdriver.gecko.driver”, driverPath);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();

capabilities.setCapability(“marionette”,true);

driver= new FirefoxDriver(capabilities);

2. Sử dụng thuộc tính marionette:

Gecko Driver cũng có thể được khởi tạo bằng cách sử dụng thuộc tính marionette như bên dưới

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

Nếu Driver tắc kè được khởi tạo bằng phương pháp trên, thì không cần mã cho các khả năng mong muốn .

3. Sử dụng FirefoxOptions:

Mozilla Firefox phiên bản 47+ có Driver marionette như một hệ thống kế thừa. Lợi dụng điều này, Driver marionette có thể được gọi bằng Firefox Options như bên dưới

FirefoxOptions options = new FirefoxOptions();

options.setLegacy(true);

Mã khởi chạy firefox bằng Gecko Driver:

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(“http://demo.guru99.com/selenium/guru99home/”);

    }

    @After

    public void endTest() {

        driver.quit();

    }

}

Giải thích mã:

@ Phương pháp trước:

Ban đầu, chúng ta cần đặt thuộc tính hệ thống cho Gecko Driver thành vị trí tải xuống tệp geckdriver.exe. Chúng ta cần đặt thuộc tính marionette thành true cho Selenium để sử dụng giao thức Marionette để giao tiếp với Gecko Driver. Cuối cùng, chúng ta cần khởi động phiên bản trình duyệt Firefox bằng cách sử dụng đối tượng cho Khả năng mong muốn.

Các câu dưới đây giúp đạt được nhiệm vụ trên.

System.setProperty(“webdriver.gecko.driver”, driverPath);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();

capabilities.setCapability(“marionette”,true);

driver= new FirefoxDriver(capabilities);

@Phương pháp kiểm tra:

Chúng tôi đang điều hướng đến URL do người dùng chỉ định bằng phương thức “get” có sẵn do Web Driver Selenium cung cấp. Tuyên bố dưới đây giúp đạt được điều tương tự.

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

@ Phương pháp sau:

Cuối cùng, chúng tôi đang đóng phiên bản trình duyệt bằng cách sử dụng phương pháp thoát.

driver.quit ();

Sửa đổi tập lệnh cho không phải Gecko thành Gecko:

Tập lệnh Driver không phải tắc kè được sử dụng trước Selenium 3 rất đơn giản. Chúng ta cần tạo một phiên bản Driver Firefox và sử dụng biến phiên bản.

@Before 

public void startBrowser () { 

    driver = new FirefoxDriver (); 

}

Để chuyển đổi sang gecko, bạn chỉ cần thêm một dòng mã

   @Before

    public void startBrowser() {

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

        driver = new FirefoxDriver();

    }

Các trường hợp ngoại lệ phổ biến xảy ra khi sử dụng Gecko Driver:

Sau đây là danh sách các trường hợp ngoại lệ phổ biến xảy ra khi sử dụng Gecko Driver và với độ phân giải.

1. Đường dẫn đến tệp thực thi Driver phải được đặt bởi thuộc tính hệ thống webdriver.gecko.driver:

Ngoại lệ này xảy ra khi người dùng cố gắng khởi tạo Driver Firefox mà không đặt thuộc tính hệ thống cho Driver tắc kè. Điều này thường được thực hiện bởi những người mới bắt đầu sử dụng Selenium, những người không biết về những thay đổi được thực hiện từ Selenium 3 sang Selenium phiên bản trước.

Giải pháp cho trường hợp ngoại lệ trên là đặt thuộc tính hệ thống cho Gecko Driver với vị trí của tệp geckodriver.exe như bên dưới

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

Xin lưu ý rằng bạn cần đặt thuộc tính của Driver tắc kè trước khi tạo phiên bản của Driver Mozilla Firefox.

2. Ngoại lệ Firefox Not Connected Exception:

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

Ngoại lệ này thường xảy ra khi phiên bản Firefox đã được nâng cấp lên phiên bản mới nhất. Giải pháp cho trường hợp ngoại lệ này là cập nhật tệp jar selen và Driver tắc kè lên phiên bản mới nhất và sử dụng như cũ.

3. Session không được tạo Ngoại lệ:

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

Ngoại lệ này xảy ra do sự cố tương thích giữa Driver Selenium và Gecko. Gecko Driver hoạt động với Firefox phiên bản 47 trở lên. Nó có thể được giải quyết bằng cách cập nhật phiên bản Firefox lên 47 hoặc cao hơn.

4. Ngoại lệ kết nối bị từ chối:

WebDriver Exception: Connection Refused

Ngoại lệ này là thông báo được tạo ra khi Web Driver không thể thiết lập kết nối với Firefox. Nó có thể được giải quyết bằng cách sử dụng bất kỳ kỹ thuật nào sau đây.

  • Sử dụng phương thức driver.quit () để hủy các phiên bản trước của Web Driver
  • Làm sạch bộ nhớ cache của trình duyệt trước khi thực hiện các thử nghiệm tự động của bạn
  • Làm sạch không gian làm việc của dự án trong Eclipse IDE
  • Luôn sử dụng phiên bản mới nhất của selenium gecko driver và phiên bản mới nhất của trình duyệt Firefox
Back to top button