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

org.catools.web.config.CChromeConfigs Maven / Gradle / Ivy

package org.catools.web.config;

import org.catools.common.collections.CList;
import org.catools.common.config.CConfigs;
import org.openqa.selenium.PageLoadStrategy;

public class CChromeConfigs extends CConfigs {

    public static String getDriverPath() {
        return getConfigs().getStringOrElse(Configs.WEB_CHROME_DRIVER_PATH, "");
    }

    public static String getBinaryPath() {
        return getConfigs().getStringOrElse(Configs.WEB_CHROME_BINARY_PATH, "");
    }

    public static CList getDefaultArguments() {
        CList defaultIfNotSet = CList.of("--disable-extensions",
                "--disable-gpu",
                "--disable-plugins",
                "--disable-infobars",
                "--log-level=3",
                "--silent",
                "--disable-dev-shm-usage",
                "--force-device-scale-factor=1");
        return getConfigs().getStringsOrElse(Configs.WEB_CHROME_DEFAULT_ARGUMENTS, ",", defaultIfNotSet);
    }

    public static PageLoadStrategy getPageLoadStrategy() {
        return PageLoadStrategy.valueOf(getConfigs().getStringOrElse(Configs.WEB_CHROME_PAGE_LOAD_STRATEGY, PageLoadStrategy.NORMAL.name()));
    }

    public static CList getPluginsToDisable() {
        return getConfigs().getStringsOrElse(Configs.WEB_CHROME_PLUGINS_TO_DISABLE,
                getConfigs().getStringOrElse(Configs.WEB_CHROME_PLUGINS_TO_DISABLE_SEPARATOR, ","),
                CList.of("Chrome PDF Viewer", "Chrome Automation Extension"));
    }

    public static CList getPluginsToEnable() {
        return getConfigs().getStringsOrElse(Configs.WEB_CHROME_PLUGINS_TO_ENABLE,
                getConfigs().getStringOrElse(Configs.WEB_CHROME_PLUGINS_TO_ENABLE_SEPARATOR, ","),
                CList.of());
    }

    public static boolean isInHeadLessMode() {
        return getConfigs().getBooleanOrElse(Configs.WEB_CHROME_HEADLESS_ENABLE, false);
    }

    public static CList getHeadLessArguments() {
        CList defaultIfNotSet = CList.of("--no-online",
                "--disable-gpu",
                "--disable-plugins",
                "--no-sandbox",
                "--disable-setuid-sandbox",
                "--disable-dev-shm-usage");
        return getConfigs().getStringsOrElse(Configs.WEB_CHROME_HEADLESS_ARGUMENTS, ",", defaultIfNotSet);
    }

    public static String getChromeMobileEmulationDeviceName() {
        return getConfigs().getStringOrElse(Configs.WEB_CHROME_MOBILE_EMULATION_DEVICE_NAME, "");
    }

    public enum Configs {
        WEB_CHROME_DRIVER_PATH, WEB_CHROME_BINARY_PATH, WEB_CHROME_DEFAULT_ARGUMENTS, WEB_CHROME_PAGE_LOAD_STRATEGY, WEB_CHROME_PLUGINS_TO_DISABLE, WEB_CHROME_PLUGINS_TO_DISABLE_SEPARATOR, WEB_CHROME_PLUGINS_TO_ENABLE, WEB_CHROME_PLUGINS_TO_ENABLE_SEPARATOR, WEB_CHROME_HEADLESS_ENABLE, WEB_CHROME_HEADLESS_ARGUMENTS, WEB_CHROME_MOBILE_EMULATION_DEVICE_NAME;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy