Mohamed Said
Mohamed Said

Reputation: 31

Geckodriver works fine when run from IDE but throws an exception when run from executable jar

I use selenium to download a file via firefox. everything works fine when I run from IDE (eclipse), but when I extract an executable jar I get the following exception:

    Exception in thread "main" org.openqa.selenium.WebDriverException: Build info: version: 'unknown', revision: 'f148142cf8', time: '2019-07-01T21:24:57'
System info: host: '28LJQV2', ip: '192.168.5.40', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_221'
Driver info: driver.version: FirefoxDriver
        at java.util.Optional.orElseThrow(Unknown Source)
        at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:179)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:154)

private void initSelenium() {
        System.setProperty("webdriver.gecko.driver",         Config.getInstance().getFIREFOX_DRIVER_PATH());
    }

private WebDriver createFirefoxDriverWithDownloadFolder(String downloadFolder) {
        FirefoxProfile profile = new FirefoxProfile();
        FirefoxOptions options = new FirefoxOptions();
        profile.setPreference("browser.download.folderList", 2);
        profile.setPreference("browser.download.dir", downloadFolder);
        profile.setPreference("browser.download.manager.showWhenStarting", false);
        profile.setPreference("browser.helperApps.neverAsk.openFile", "application/x-msdownload");
        profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/x-msdownload, application/zip");

        options.setProfile(profile);

        WebDriver driver = new FirefoxDriver(options);
        return driver;
    }

In properties file: FIREFOX_DRIVER_PATH = C:\geckodriver.exe

Upvotes: 1

Views: 615

Answers (2)

mesompi
mesompi

Reputation: 699

Here I was using an old version of selenium (4.0.0-beta-3) with Gradle, I just updated to the current version (4.2.1), then generated the jar file and the problem went away.

Upvotes: 0

Mohamed Said
Mohamed Said

Reputation: 31

Solved by extracting runnable jar using "Package required libraries into generated jar" instead of "Extract required libraries into generated jar"

Upvotes: 1

Related Questions