package aquality.selenium.configuration.driversettings; import aquality.selenium.browser.BrowserName; import aquality.selenium.core.utilities.ISettingsFile; import org.openqa.selenium.firefox.FirefoxOptions; import java.util.Map; public class FirefoxSettings extends DriverSettings { public FirefoxSettings(ISettingsFile settingsFile){ super(settingsFile); } @Override public FirefoxOptions getCapabilities() { FirefoxOptions firefoxOptions = new FirefoxOptions(); setCapabilities(firefoxOptions); setFirefoxPrefs(firefoxOptions); setFirefoxArgs(firefoxOptions); firefoxOptions.setPageLoadStrategy(getPageLoadStrategy()); return firefoxOptions; } @Override public String getDownloadDirCapabilityKey() { return "browser.download.dir"; } @Override public BrowserName getBrowserName() { return BrowserName.FIREFOX; } private void setFirefoxPrefs(FirefoxOptions options) { Map<String, Object> configOptions = getBrowserOptions(); configOptions.forEach((key, value) -> { if (key.equals(getDownloadDirCapabilityKey())) { options.addPreference(key, getDownloadDir()); } else if(value instanceof Boolean) { options.addPreference(key, (boolean) value); } else if (value instanceof Integer) { options.addPreference(key, (int) value); } else if (value instanceof String) { options.addPreference(key, (String) value); } }); } private void setFirefoxArgs(FirefoxOptions options) { logStartArguments(); for (String arg : getBrowserStartArguments()) { options.addArguments(arg); } } }