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

com.googlecode.jmeter.plugins.webdriver.config.RemoteDriverConfig Maven / Gradle / Ivy

package com.googlecode.jmeter.plugins.webdriver.config;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.Capabilities;
import org.openqa.selenium.remote.AbstractDriverOptions;
import org.openqa.selenium.remote.LocalFileDetector;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class RemoteDriverConfig extends WebDriverConfig {

	private static final long serialVersionUID = 100L;
	private static final Logger LOGGER = LoggerFactory.getLogger(RemoteDriverConfig.class);

	private static final String LOCAL_FILE_DETECTOR = "RemoteDriverConfig.general.selenium.file.detector";
	private static final String REMOTE_BROWSER = "RemoteDriverConfig.general.selenium.capability";
	private static final String REMOTE_SELENIUM_GRID_URL = "RemoteDriverConfig.general.selenium.grid.url";

	@Override
	protected RemoteWebDriver createBrowser() {
		try {
			RemoteWebDriver driver = new RemoteWebDriver(new URL(getSeleniumGridUrl()), createCapabilities());
			if (isLocalFileDectedor()) {
				driver.setFileDetector(new LocalFileDetector());
			}
			LOGGER.debug("Created remote web driver.");
			return driver;
		} catch (MalformedURLException e) {
			throw new RuntimeException(e);
		}
	}

	public Capabilities createCapabilities() {
		// We pass the browser option instance to the remote so it knows which browser to use
		AbstractDriverOptions caps = null;
		switch (getSelectedBrowser()) {
		case CHROME:
			caps = createChromeOptions();
			break;
		case EDGE:
			caps = createEdgeOptions();
			break;
		case FIREFOX:
			caps = createFirefoxOptions();
			break;
		case INTERNET_EXPLORER:
			caps = createIEOptions();
			break;
		default:
			throw new IllegalArgumentException("No such capability");
		}
		combineCustomCapabilities(caps);
		return caps;
	}

	public RemoteBrowser getSelectedBrowser() {
		return RemoteBrowser.valueOf(getPropertyAsString(REMOTE_BROWSER));
	}
	public void setSelectedBrowser(RemoteBrowser remoteBrowser) {
		setProperty(REMOTE_BROWSER, remoteBrowser.name());
	}

	public String getSeleniumGridUrl() {
		return getPropertyAsString(REMOTE_SELENIUM_GRID_URL);
	}
	public void setSeleniumGridUrl(String seleniumUrl) {
		setProperty(REMOTE_SELENIUM_GRID_URL, seleniumUrl);
	}

	public boolean isLocalFileDectedor() {
		return getPropertyAsBoolean(LOCAL_FILE_DETECTOR);
	}
	public void setLocalFileDetector(boolean enabled) {
		setProperty(LOCAL_FILE_DETECTOR, enabled);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy