Селен Вебдрайвер. Веб-драйвер обнаружен веб-сайтом. Как это исправить?

#java #selenium #selenium-chromedriver

Вопрос:

Мне нужно скрыть информацию о селене для некоторых веб-сайтов.

Я погуглил этот вопрос и нашел много ответов, но все эти ответы не работают.

Селен Java 4.0.0-бета-версия-4/3.141.59. Java 11. ChromeDriver 92.0.4515.107.

Мой Код:

 ChromeOptions options = new ChromeOptions();

options.addArguments("--disable-extensions");
options.addArguments("--noerrordialogs", "--disable-features=InfiniteSessionRestore", "--disable-blink-features", "--disable-blink-features=AutomationControlled");
options.addArguments("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36");

Map<String, Object> prefs = new HashMap<>();
prefs.put("exit_type", "none");
prefs.put("exited_cleanly", "false");

options.setExperimentalOption("prefs", prefs);

options.setExperimentalOption("excludeSwitches", List.of("enable-automation"));
options.setExperimentalOption("useAutomationExtension", false);

System.setProperty("webdriver.chrome.verboseLogging", "true");
System.setProperty("webdriver.chrome.logfile", String.format("%s\chromedriver.log", appBasePath));

options.setCapability(CapabilityType.LOGGING_PREFS, buildLoggingPreferences());

options.addArguments("start-maximized", String.format("user-data-dir=%s\chrome\", appBasePath));

ChromeDriverService chromeDriverService = new ChromeDriverService.Builder()
        .usingAnyFreePort()
        .usingDriverExecutable(googleChromeManager.getGoogleChromeDriverFile())
        .build();
 

Я попробовал это:

driver.executeScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})");

Но это все равно не работает.

Как устранить эту проблему?