Geckodriver 다운로드: 설치 방법 Firefox 용 드라이버 Selenium

GeckoDriver란 무엇인가요? Selenium?

Gecko라는 용어는 Mozilla에 내장된 웹 브라우저 엔진을 나타냅니다. Firefox 브라우저. Gecko 드라이버는 웹 드라이버가 활성화된 클라이언트 간의 프록시 역할을 합니다.Eclipse, Netbeans 등) 및 Mozilla Firefox 브라우저. 간단히 말해서 Gecko 드라이버는 다음 사이의 링크 역할을 합니다. Selenium 웹 드라이버 테스트 및 Mozilla Firefox 브라우저.

전 Selenium 3, 모질라 Firefox 브라우저는 기본 브라우저였습니다. Selenium. 후 Selenium 3, 테스터는 사용할 스크립트를 초기화해야 합니다. Firefox GeckoDriver를 명시적으로 사용합니다. Selenium W3C Webdriver 프로토콜을 사용하여 GeckoDriver에 요청을 보내고 GeckoDriver는 해당 요청을 Mari오네트. Firefox 다음과 같은 형태로 전송되는 명령을 이해합니다. Marionette 프로토콜을 작성하고 실행합니다.

게코드라이버 인 Selenium

GeckoDriver를 다운로드하고 설치하는 방법 Selenium

Gecko Driver는 시스템에 다운로드할 수 있는 실행 파일로 제공됩니다. 다음은 Gecko Driver를 다운로드하는 단계 목록입니다.

1 단계 ) 적절한 버전을 선택하세요.
이 페이지에서 https://github.com/mozilla/geckodriver/releases ,운영 체제에 따라 GeckoDriver 다운로드에 적합한 버전을 선택하세요

GeckoDriver를 다운로드하여 설치하세요. Selenium

단계 2) ZIP 파일의 압축을 풉니다.
ZIP 파일 다운로드가 완료되면 ZIP 파일의 내용을 파일 폴더에 추출합니다.

GeckoDriver를 다운로드하여 설치하세요. Selenium

단계 3) 위치를 참고하세요.
드라이버를 추출한 위치를 기록해 두세요. 위치는 나중에 드라이버를 인스턴스화하는 데 사용됩니다.

GeckoDriver를 다운로드하여 설치하세요. Selenium

GeckoDriver를 초기화하는 방법

GeckoDriver를 초기화하는 방법에는 세 가지가 있습니다.

1. DesiredCapability 사용

먼저 Gecko Driver의 시스템 속성을 설정합니다.

구문 :

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

예:

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

다음으로 원하는 기능을 설정합니다.

원하는 기능 도움말 Selenium 자동화된 테스트를 실행하기 위해 브라우저 이름, 버전 및 운영 체제를 이해합니다. 아래는 DesiredCapabilities 클래스를 사용하여 Gecko 드라이버를 설정하는 코드입니다.

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);

다음은 완전한 코드입니다.

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

2. 마리오네트 속성 사용하기

Gecko 드라이버는 아래와 같이 marionette 속성을 사용하여 초기화할 수도 있습니다.

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

위의 방법을 사용하여 gecko 드라이버를 초기화하면 원하는 기능에 대한 코드는 다음과 같습니다. 지원 이 필요합니다.

3. 사용 Firefox옵션

모질라 Firefox 버전 47+에는 레거시 시스템으로 marionette 드라이버가 있습니다. 이를 활용하여 marionette 드라이버를 호출할 수 있습니다. Firefox 아래와 같은 옵션

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

Gecko 드라이버를 사용하여 Firefox를 시작하기 위한 코드

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();
    }

}

코드 설명

@Before 메소드

처음에는 gecko 드라이버의 시스템 속성을 geckdriver.exe 파일 다운로드 위치로 설정해야 합니다. marionette 속성을 true로 설정해야 합니다. Selenium 사용 MariGecko Driver와 통신하기 위한 onette 프로토콜입니다. 마지막으로 우리는 다음 작업을 시작해야 합니다. Firefox 원하는 기능에 대한 객체를 사용하는 브라우저 인스턴스입니다.

아래 설명은 위 작업을 달성하는 데 도움이 됩니다.

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

@시험 방법

우리는 내장된 "get" 메소드를 사용하여 사용자가 지정한 URL로 이동합니다. Selenium 웹 드라이버. 아래 진술은 동일한 결과를 얻는 데 도움이 됩니다.

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

@After 메소드

마지막으로 quit 메소드를 사용하여 브라우저 인스턴스를 닫습니다.

driver.quit();

non-Gecko에 대한 스크립트를 Gecko로 수정

이전에 사용된 Non-gecko 드라이버 스크립트 Selenium 3은 간단했다. 우리는 다음의 인스턴스를 생성해야 합니다. Firefox 드라이버를 설치하고 인스턴스 변수를 사용하세요.

@Before
public void startBrowser() {
    driver = new FirefoxDriver();

}

gecko로 변환하려면 코드 한 줄만 추가하면 됩니다.

    @Before
    public void startBrowser() {
        System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
        driver = new FirefoxDriver();

    }

Gecko Driver를 사용하는 동안 일반적인 예외가 발생했습니다.

다음은 Gecko Driver를 사용하는 동안 발생하는 일반적인 예외 목록과 해결 방법입니다.

이 예외는 사용자가 인스턴스화를 시도할 때 발생합니다. Firefox gecko 드라이버에 대한 시스템 속성을 설정하지 않고 드라이버를 사용합니다. 일반적으로 초보자가 수행하는 작업입니다. Selenium 변경된 사항을 인식하지 못하는 사람 Selenium 에 3 Selenium 이전 버전.

위 예외에 대한 해결 방법은 geckodriver.exe 파일의 위치를 ​​아래와 같이 gecko 드라이버의 시스템 속성으로 설정하는 것입니다.

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

Mozilla 인스턴스를 생성하기 전에 gecko 드라이버의 속성을 설정해야 합니다. Firefox 운전사.

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

이 예외는 일반적으로 다음과 같은 경우에 발생합니다. Firefox 버전이 최신 버전으로 업그레이드되었습니다. 이 예외에 대한 해결책은 Selenium jar 파일과 Gecko 드라이버를 최신 버전으로 업데이트하고 동일한 버전을 사용하는 것입니다.

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

이 예외는 간의 호환성 문제로 인해 발생합니다. Selenium 그리고 게코 드라이버. Gecko 드라이버는 다음과 함께 작동합니다. Firefox 버전 47 이상. 업데이트하면 해결될 수 있음 Firefox 버전을 47 이상으로 변경하세요.

WebDriver Exception: Connection Refused

이 예외는 웹 드라이버가 연결을 설정할 수 없을 때 생성되는 메시지입니다. Firefox다음 기술 중 하나를 사용하여 해결할 수 있습니다.

  • driver.quit() 웹 드라이버의 이전 인스턴스를 파괴하는 방법
  • 자동화된 테스트를 실행하기 전에 브라우저 캐시를 정리하세요.
  • 프로젝트 작업 공간을 정리하십시오. Eclipse IDE
  • 항상 최신 버전의 Selenium Gecko 드라이버와 최신 버전을 사용하십시오. Firefox 브라우저

Gecko Driver 사용의 장점

Selenium Webdriver 버전 2.53은 Mozilla와 호환되지 않습니다. Firefox 버전 47.0+. 그만큼 Firefox 이전 버전의 Mozilla에서 사용된 드라이버 Firefox 중단될 예정이며 GeckoDriver 구현만 사용됩니다. 따라서 테스터는 Mozilla에서 자동화된 테스트를 실행하려는 경우 GeckoDriver를 사용해야 합니다. Firefox 버전 47.0+. 그러나 가장 큰 질문은 – 장점이 무엇입니까?

기본값과 달리 GeckoDriver를 사용하는 주요 이점 Firefox 운전사는 호환성. GeckoDriver는 다음을 사용합니다. W3C WebDriver 프로토콜 와 소통하다 Selenium. W3C는 웹 드라이버에 대해 보편적으로 정의된 표준입니다. 이는 다음을 의미합니다. Selenium 개발자(코딩하는 사람들 Selenium 기본) 각 브라우저 버전에 대해 새 버전의 Web Driver를 만들 필요가 없습니다. 여러 브라우저 버전에 동일한 웹 드라이버를 사용할 수 있습니다. 따라서 GeckoDriver는 이전 구현에 비해 선호됩니다. Firefox 운전사.