Perform authentication using Chrome or Firefox

Windows OS authentication popup is not accessible via standard Selenium tools.

Solution

When using Chrome or Firefox the following code based on Perfecto visual functions can be used:

Copy
chrome_firefoxAuthTest(driver, "https://jigsaw.w3.org/HTTP/Basic/", "guest", "guest");

    public static void chrome_firefoxAuthTest(RemoteWebDriver driver, String url, String username, String password) throws InterruptedException {
        FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver)
            .withTimeout(120,TimeUnit.SECONDS)
            .pollingEvery(5,TimeUnit.SECONDS)
            .ignoring(Exception.class);
        String indentifier = "Sign in";
        driver.executeScript("window.open('"+ url +"','_blank');");
        Map<String, Object> params = new HashMap<>();
        params.put("content", indentifier);
        wait.until(_driver -> driver.executeScript("mobile:text:find", params).equals("true"));
        params.clear();
        params.put("label", indentifier);
        driver.executeScript("mobile:button-text:click", params);
        params.clear();
        params.put("label", indentifier);
        params.put("text", username);
        driver.executeScript("mobile:edit-text:set", params);
        params.clear();
        params.put("label", "Password");
        params.put("ignorecase", "case");
        params.put("label.direction", "right");
        params.put("text", password);
        driver.executeScript("mobile:edit-text:set", params);
        params.clear();
        params.put("label", indentifier);
        params.put("label.direction", "inside");
        params.put("index", 2);
        driver.executeScript("mobile:button-text:click", params);
    }

See also the Perfecto Knowledgebase.