При запуске WebDriver с браузером Chrome появляется сообщение "Разрешены только локальные подключения", даже если браузер правильно запускается

Когда я запускаю браузер Chrome с помощью WebDriver, я получаю следующее сообщение на консоли. Пожалуйста, дайте мне знать, как решить эту проблему.

"Запуск ChromeDriver (v2.10.267521) через порт 22582 " "Разрешены только локальные подключения."

Вот мой пример кода:

public class Browserlaunch {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32   \\chromedriver.exe");
        WebDriver driver = new ChromeDriver() ;
        driver.get("http://webdunia.com");
        driver.close();
        driver.quit();
    }
}

12 ответов

Это только информационное сообщение. В сообщении говорится, что исполняемый файл chromedriver будет принимать соединения только с локальной машины.

Большинство реализаций драйверов (драйвер Chrome и драйвер IE наверняка) создают HTTP-сервер. Все языковые привязки (Java, Python, Ruby, .NET и т. Д.) Используют протокол JSON-over-HTTP для связи с драйвером и автоматизации браузера. Поскольку HTTP-сервер просто прослушивает открытый порт для HTTP-запросов, сгенерированных привязками языка, соединения с HTTP-сервером, запускаемые привязками языка, допускаются только от других процессов на том же хосте. Обратите внимание, что это ограничение не распространяется на соединения, которые браузер может устанавливать с внешними веб-сайтами; скорее это просто предотвращает входящие соединения с других сайтов.

Не обязательно лучшая практика, но моя среда была локальной сетью с несколькими машинами, которым требовался доступ к селену.

При запуске chromedriver вы можете пройти через параметр следующим образом:

chromedriver --whitelisted-ips=""

Это, в основном, внесет в белый список все IP-адреса, конечно, не всегда идеальное решение, и будьте осторожны с производственной средой, но вы должны получить подробное предупреждение:

Запуск ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) на порту 9515 Все удаленные подключения разрешены. Вместо этого используйте белый список!

В лучшем случае это обходной путь, но он работает.

Относительная регистрация

Я получал точно такие же ошибки. Я боролся с этой проблемой в течение нескольких часов сегодня. Похоже, это вызвано несоответствием между версиями chromedriver и selenium-server-standalone. Файл config.js ссылался на каталог с chromedriver 2.9 и selenium-server-standalone 2.35.0. Как только я убедился, что мы ссылаемся на 2.10 и 2.42.2, это сработало.

После нескольких часов анализа, чтения тонны журналов и исходного кода, наконец, обнаружена проблема. И решить ее довольно просто.

в одной строке: вам нужно передать --whitelisted-ips= в исполняемые файлы драйвера chrome (не chrome!)

Сделать это можно несколькими способами:

Если вы используете ChromeDriver локально / напрямую из кода, просто вставьте строки ниже перед запуском ChromeDriver

    System.setProperty("webdriver.chrome.whitelistedIps", "");

Если вы используете его удаленно (например, selenium hub/grid), вам необходимо установить системное свойство при запуске узла, например, в команде:

java -Dwebdriver.chrome.whitelistedIps= testClass etc...

или докер, пройдя JAVA_OPTS env

  chrome:
    image: selenium/node-chrome:3.141.59
    container_name: chrome
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=

Chromedriver - это WebDriver. WebDriver - это инструмент с открытым исходным кодом для автоматического тестирования веб-приложений во многих браузерах. Он предоставляет возможности для перехода на веб-страницы, ввода данных пользователем, выполнения JavaScript и многого другого. Когда вы запустите этот драйвер, он позволит вашим скриптам получить к нему доступ и выполнять команды в Google Chrome.

Это можно сделать с помощью скриптов, запущенных в локальной сети (Only local connections are allowed.) или через скрипты, запущенные во внешних сетях (All remote connections are allowed.). Всегда безопаснее использовать параметр "Локальное подключение". По умолчанию ваш Chromedriver доступен через порт9515.

Чтобы ответить на вопрос, это просто информационное сообщение. Вам не о чем беспокоиться.

Ниже приведены оба варианта.

$ chromedriver

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

Это путем внесения всех IP-адресов в белый список.

$ chromedriver --whitelisted-ips=""

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
All remote connections are allowed. Use a whitelist instead!
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

Это происходило со мной, когда я должен был исправить старый проект, который давно не рассматривался. Хромированный драйвер, связанный с проектом, был несовместим с моей версией хрома, поэтому, когда я обновил хроматический драйвер, он работал нормально.

Это только информационное сообщение. Это ничего не значит, если ваши тестовые скрипты и chromedriver находятся на одной машине, тогда можно добавить опцию "whitelisted-ips". Ваш тест будет работать нормально. Однако, если вы используете chromedriver в настройке сетки, это сообщение не появится

Очень часто эта ошибка появляется, если вы используете несовместимые версии Selenium и ChromeDriver.

Selenium 3.0.1 для проекта Maven:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.0.1</version>
    </dependency>

ChromeDriver 2.27: https://sites.google.com/a/chromium.org/chromedriver/downloads

Была та же проблема, решил ее, получив соответствующий веб-драйвер с:https://chromedriver.chromium.org/downloads

Вы можете узнать точную версию своего браузера Chrome, введя ссылку:

      chrome://settings/help

Мне приходилось запускать свои команды в одном и том же терминале, а не по отдельности.

nohup sudo Xvfb :10 -ac
export DISPLAY=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"

у меня была такая же проблема. Эта ошибка возникает, когда вы используете автономный сервер selenium вместо selenium-java, а версия вашего автономного сервера selenium и версия браузера несовместимы.

я использовал: implementation 'org.seleniumhq.selenium:selenium-server:3.141.59'в моем build.gradle.

Чтобы решить эту проблему, я изменил свою зависимость на selenium-java в build.gradle.

      implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'

я бегал локально. Но если вы работаете через сетку Selenium, вам нужно использовать System.setProperty("webdriver.chrome.whitelistedIps", "");перед инициализацией ChromeDriver.

Я решил эту ошибку, установив драйвер браузера:

  1. Перейдите в браузере на сайт seleniumhq.org
  2. Выберите вкладку "Загрузки"
  3. Прокрутите страницу вниз до раздела "Браузер" и загрузите нужный драйвер, перейдя по ссылке, например, "Драйвер Google Chrome".
  4. Дважды щелкните загруженный файл, например, chromedriver_mac64(1).zip
  5. Дважды щелкните извлеченный файл, например, chromedriver

Ссылка: поищите на YouTube.com ошибку

Платформа: macOS High Sierra 10.13.3

Другие вопросы по тегам