Tải Geckodriver cho Firefox & Selenium webdriver
GeckoDriver trong gì Selenium?
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 Mozilla Firefox trình duyệt. Trình điều khiển Gecko hoạt động như một proxy giữa các máy khách được kích hoạt Trình điều khiển Web(Eclipse, Netbeans, v.v.) và Mozilla Firefox trình duyệt. Tóm lại, trình điều khiển Gecko hoạt động như một liên kết giữa Selenium Kiểm tra trình điều khiển web và Mozilla Firefox trình duyệt.
Trước Selenium 3, Mozilla Firefox trình duyệt là trình duyệt mặc định cho Selenium. Sau Selenium 3, người kiểm thử cần khởi tạo script để sử dụng Firefox sử dụng GeckoDriver một cách rõ ràng. Selenium sử dụng giao thức W3C Webdriver để gửi yêu cầu tới GeckoDriver, dịch chúng thành giao thức có tên Marionette. Firefox sẽ hiểu các lệnh được truyền dưới dạng Marigiao thức onette và thực thi chúng.
Cách tải xuống và cài đặt GeckoDriver trong Selenium
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 trình điều khiển gecko.
Bước 1 ) Chọn phiên bản phù hợp.
Tại trang này https://github.com/mozilla/geckodriver/releases ,Chọn phiên bản phù hợp để tải xuống GeckoDriver dựa trên hệ điều hành của bạn
Bước 2) Giải nén tệp ZIP.
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) Lưu ý vị trí.
Lưu ý vị trí bạn đã trích xuất trình điều khiển. Vị trí sẽ được sử dụng sau để khởi tạo trình điều khiển.
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");
Ví dụ:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Tiếp theo, đặt Khả năng mong muốn.
Trợ giúp về khả năng mong muốn Selenium để hiểu tên trình duyệt, phiên bản và hệ điều hành để thực hiện kiểm tra tự động. Dưới đây là mã để đặt trình điều khiển tắc kè sử dụng lớp DesiredCapabilities.
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 tính chất rối
Trình điều khiển tắc kè cũng có thể được khởi tạo bằng thuộc tính marionette như bên dưới
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Nếu trình điều khiển tắc kè được khởi tạo bằng phương pháp trên, mã cho các khả năng mong muốn là không yêu cầu.
3. Sử dụng FirefoxCác lựa chọn
Mozilla Firefox phiên bản 47+ có trình điều khiển marionette như một hệ thống cũ. Lợi dụng điều này, trình điều khiển marionette có thể được gọi bằng cách sử dụng Firefox Tùy chọn như dưới đây
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Mã để khởi chạy firefox bằng trình điều khiển 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("http://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Giải thích mã
@Trước phương pháp
Ban đầu, chúng ta cần đặt thuộc tính hệ thống cho trình điều khiển tắc kè 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 Marigiao thức onette để giao tiếp với Gecko Driver. Cuối cùng, chúng ta cần bắt đầu Firefox phiên bản trình duyệt sử dụng đối tượng cho Khả năng mong muốn.
Các tuyên bố 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” sẵn có được cung cấp bởi Selenium trình điều khiển web. 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 thức @After
Cuối cùng, chúng ta đóng phiên bản trình duyệt bằng phương thức quit.
driver.quit();
Sửa đổi tập lệnh từ không phải Gecko thành Gecko
Tập lệnh trình điều khiển không phải tắc kè được sử dụng trước đây Selenium 3 rất đơn giản. Chúng ta cần tạo một thể hiện của Firefox driver và sử dụng biến thể hiện.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Để chuyển đổi sang tắc kè, 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ệ thường gặp xảy ra khi sử dụng Trình điều khiển Gecko
Sau đây là danh sách các trường hợp ngoại lệ thường gặp khi sử dụng Gecko Driver và cách giải quyết.
Ưu điểm khi sử dụng Gecko Driver
Selenium Phiên bản Webdriver 2.53 không tương thích với Mozilla Firefox phiên bản 47.0+. Các Firefox trình điều khiển được sử dụng trong các phiên bản trước của Mozilla Firefox sẽ bị ngừng và chỉ triển khai GeckoDriver mới được sử dụng. Do đó, người thử nghiệm buộc phải sử dụng GeckoDriver nếu họ muốn chạy thử nghiệm 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 so với mặc định Firefox tài xế là Khả năng tương thích. Công dụng của GeckoDriver Giao thức W3C WebDriver giao tiếp với Selenium. W3C là một tiêu chuẩn được xác định phổ biến cho Web Driver. Điều này có nghĩa là Selenium Nhà phát triển (Những người viết mã Selenium base) không cần tạo phiên bản Trình điều khiển Web mới cho từng phiên bản trình duyệt. Có thể sử dụng cùng một Trình điều khiển Web 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 trước đó Firefox người lái xe.