Я использую 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;
}