All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.epam.jdi.light.driver.get.DriverInfo Maven / Gradle / Ivy

package com.epam.jdi.light.driver.get;

import com.epam.jdi.tools.DataClass;
import com.epam.jdi.tools.func.JFunc;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.URL;

import static com.epam.jdi.light.common.Exceptions.exception;
import static com.epam.jdi.light.driver.WebDriverFactory.isRemote;
import static com.epam.jdi.light.driver.get.DownloadDriverManager.downloadDriver;
import static com.epam.jdi.light.driver.get.DriverData.DRIVER_VERSION;
import static com.epam.jdi.light.driver.get.DriverData.PLATFORM;
import static com.epam.jdi.light.settings.WebSettings.DRIVER_REMOTE_URL;
import static java.lang.System.setProperty;

public class DriverInfo extends DataClass {
    public DriverTypes type;
    public JFunc capabilities;
    public String properties;
    public String path;
    public JFunc getDriver;

    public WebDriver getDriver() {
        return isRemote()
                ? setupRemote()
                : setupLocal();
    }
    private WebDriver setupRemote() {
        try {
            return new RemoteWebDriver(new URL(DRIVER_REMOTE_URL), capabilities.execute());
        } catch (Exception ex) { throw exception("Can't get remote "+type.name+" driver"); }
    }
    private WebDriver setupLocal() {
        if (DRIVER_VERSION.isEmpty())
            setProperty(properties, path);
        else
            downloadDriver(type, PLATFORM, DRIVER_VERSION);
        return getDriver.execute();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy