mardi 30 mars 2021

Switch Driver from chrome to electron with java and Selenium

I am currently testing my application using chrome driver, but for one test I need to select a link to then open an electron app, after this i am unable to interact after the op up window has appeared. Is it possible to switch over to the electron app after ive launch the chromedriver? My driver class looks like this:

public static WebDriver startDriver() {


    String projectLocation = System.getProperty("user.dir");

    // add in elements for logging into the mobile application also - Android and
    // iOS.
    if (OSValidator.isMac()) {
        System.setProperty("webdriver.chrome.driver", projectLocation + "/chromedriver_mac");
    } else if (OSValidator.isWindows()) {
        System.setProperty("webdriver.chrome.driver", projectLocation + "/chromedriver.exe");
    } else {
        System.setProperty("webdriver.chrome.driver", projectLocation + "/chromedriver_linux");
    }

    if (System.getProperty("app.env") != null) { // If coming from Jenkins/Maven goal..
        // This is for logging results. Added when investigating crashes on chrome driver. Can be disabled when not needed. 26/03/2020
        System.setProperty("webdriver.chrome.verboseLogging", "true");
    }


    ChromeOptions options = new ChromeOptions();
    options.addArguments("start-maximized");
    options.addArguments("disable-infobars");
    options.addArguments("--disable-extensions");
    options.addArguments("--window-size=1920x1080");
    options.addArguments("--disable-cache");
    //options.addArguments("--headless");
    options.addArguments("--disable-application-cache");
    options.addArguments("--disk-cache-size=0");
    options.addArguments("--disable-gpu"); // applicable to windows os only
    options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
    options.addArguments("--dns-prefetch-disable");
    options.addArguments("--disable-notifications");
    options.addArguments("disable-infobars");


    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.BROWSER, Level.ALL);
    options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
    //options.addArguments("--no-sandbox"); // Bypass OS security model
    options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
    driver = new ChromeDriver(options);
    //--------------------

    driver.manage().window().maximize();

    return driver;
}

Aucun commentaire:

Enregistrer un commentaire