Прокси BrowserMob не работает с ChromeDriver - PullRequest
0 голосов
/ 17 июня 2019

Я использую BrowserMob с Selinium для обработки всплывающего окна с базовой аутентификацией, и оно отлично работает с Firefox, но не с Chrome.Мой код ниже.Единственное различие между моим кодом Firefox и кодом Chrome - это строки chromeOptions.addArguments ().Вывод моей консоли

Запуск ChromeDriver 75.0.3770.90 (a6dcaf7e3ec6f70a194cc25e8149475c6590e025-refs / branchsheads / 3770 @ {# 1003}) на порту 47145

Разрешены только локальные подключения.1006 *

Защитите порты, используемые ChromeDriver и соответствующими тестовыми средами, для предотвращения доступа вредоносного кода.

17 июня 2019 10:00:15 org.openqa.selenium.remote.ProtocolHandshake createSession

ИНФОРМАЦИЯ: Обнаруженный диалект: W3C

Мой браузер Chrome управляется моей организацией.Я попытался заменить строку chromeOptions.setCapability(CapabilityType.PROXY,seleniumProxy); на chromeOptions.setProxy(seleniumProxy);, и она все еще не работала.

Я использую BrowserMob 2.1.5, ChromeDriver 75.0.3370.90, Google Chrome Версия 75.0.3770.90 (Официальная сборка) (32-бит) и Selenium 3.141.59

browserMobProxy = getProxyServer(username, password);
        Proxy seleniumProxy = getSeleniumProxy(browserMobProxy);
        System.setProperty("webdriver.chrome.driver","P:/AppDev/MIS Projects/Selenium/chromedriver.exe");
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("user-data-dir=" + profileLocation);
        chromeOptions.addArguments("disable-infobars");
        chromeOptions.setCapability(CapabilityType.PROXY, seleniumProxy);

private static BrowserMobProxy getProxyServer(String username, String password) {
    BrowserMobProxy proxy = new BrowserMobProxyServer();
    proxy.setTrustAllServers(true);
    proxy.start();
    String credentials = username + ":" + password;
    String encodedCreadentials = "Basic " + (Base64.getEncoder().encodeToString(credentials.getBytes()));
    proxy.addHeader("Authorization", encodedCreadentials);
    return proxy;
}

public static Proxy getSeleniumProxy(BrowserMobProxy proxyServer) {
    Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyServer);
    try {
        String hostIp = Inet4Address.getLocalHost().getHostAddress();
        seleniumProxy.setHttpProxy(hostIp + ":" + proxyServer.getPort());
        seleniumProxy.setSslProxy(hostIp + ":" + proxyServer.getPort());
    } catch (UnknownHostException e) {
        e.printStackTrace();
        Assert.fail("invalid Host Address");
    }
    return seleniumProxy;
}
...