Мы сталкиваемся с проблемой в потоке автоматизации, когда мы пытаемся запустить URL через автоматизацию, он показывает, как небезопасный из-за того, что сайт не загружает надлежащее содержимое на странице, так как вызовы API становятся сбой из-за из соображений безопасности, поскольку это не безопасно. Мы видели, что прокси-сервер browsermob вызвал эту ошибку с прошлой недели, до этого она работала нормально. Мы предполагаем, что прокси-сервер browsermob создает проблему, потому что, если мы комментируем код настройки прокси-сервера (код, упомянутый ниже), то он ведет себя как ожидалось.
Когда мы пытаемся запустить URL-адрес вручную, он показывает как безопасный и правильно загружающий все содержимое страницы на одном компьютере.
Инструменты, которые мы используем: 1.Selnium Grid Java TestNG framework 2.Selenium 3.141.59 3. Java 12 4. Browsermob-proxy 2.1.5 5.Guava 28.2-jre
Соединение url показывается как небезопасное, поскольку сертификат недействителен. (Ошибка: этот сертификат CA Root не является доверенным, поскольку он не находится в Trusted Root Магазин центров сертификации.) Фрагмент кода приведен здесь:
public RemoteWebDriver startUpDriver(String browserType, String nodeURL) {
ChromeOptions options = new ChromeOptions();
options.setCapability(CapabilityType.BROWSER_NAME, "chrome");
options.setCapability(CapabilityType.PLATFORM_NAME, Platform.ANY);
//options.addArguments("--incognito");
options.setAcceptInsecureCerts(true);
options.addArguments("--allow-insecure-localhost");
options.addArguments("--ignore-certificate-errors");
options.addArguments(CapabilityType.ACCEPT_SSL_CERTS);
options.addArguments(CapabilityType.ENABLE_PROFILING_CAPABILITY);
options.addArguments(CapabilityType.ACCEPT_INSECURE_CERTS);
//options.addArguments(CapabilityType.SUPPORTS_APPLICATION_CACHE);
options.setCapability("networkConnectionEnabled", true);
options.setCapability("browserConnectionEnabled", true);
options.addArguments("--disable-gpu");
logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
proxy = getProxyServer();
Proxy seleniumProxy = getSeleniumProxy(proxy);
options.setCapability(CapabilityType.PROXY, seleniumProxy);
options.addArguments("--start-maximized");
remoteWebDriver = new RemoteWebDriver(new URL(nodeURL), options);
}
public BrowserMobProxy getProxyServer() {
File pemEncodedCAFile = new File("path to certificate\\ca-certificate-ec.cer");
//ca-certificate-ec.cer has been downloaded from (https://raw.githubusercontent.com/lightbody/browsermob-proxy/master/browsermob-core/src/main/resources/sslSupport/ca-certificate-rsa.cer)
TrustSource trustSource = TrustSource.defaultTrustSource().add(pemEncodedCAFile);
ImpersonatingMitmManager mitmManager = ImpersonatingMitmManager.builder()
.trustSource(trustSource)
.trustAllServers(true)
.build();
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.setTrustSource(trustSource);
proxy.setMitmManager(ImpersonatingMitmManager.builder().trustAllServers(true).build());
//proxy.setMitmManager(mitmManager);
proxy.setTrustAllServers(true);
proxy.start();
return proxy;
}
public Proxy getSeleniumProxy(BrowserMobProxy proxyServer) {
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyServer);
try {
String hostIp = Inet4Address.getLocalHost().getHostAddress();
int port = proxyServer.getPort();
seleniumProxy.setHttpProxy(hostIp + ":" + port);
seleniumProxy.setSslProxy(hostIp + ":" + port);
} catch (UnknownHostException e) {
}
return seleniumProxy;
}
Любая помощь очень ценится, поскольку мы застряли здесь полностью и не можем двигаться дальше, что в конечном итоге затрудняет наши ежедневные результаты.
Пожалуйста, найдите скриншот ниже: введите описание изображения здесь