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

88

Когда я запускаю браузер 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();
    }
}
user3899403
источник

Ответы:

97

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

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

JimEvans
источник
In my case the test stop after open up the browser and page is empty. In the url Not secure data:, So in that sense this is an issue. Do you have any idea why?
SMPH
so if I access a website that uses https communication with selenium using driver.get(etc...) does that mean the information sent to that site are encrypted with https?
Mike Sandstrom
Связь HTTP (незащищенная), о которой говорится в этом ответе, осуществляется между привязками языка (вы код Selenium на Java, C #, Python и т. Д.) И драйвером браузера (chromedriver, geckodriver и т. Д.). Связь между браузером и веб-сайтом не изменилась. Если вы используете HTTPS в браузере, связь между браузером и веб-сервером все равно должна быть зашифрована.
JimEvans 05
У меня такая же проблема: / Исправлялась ли эта проблема?
user3430861
13

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

newToSeleniumMate
источник
13

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

При запуске chromedriver вы можете передать такой параметр:

chromedriver --whitelisted-ips=""

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

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

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

Относительный заезд

Погриндис
источник
5

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

Cawmag
источник
3

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

Вики
источник
3
как мне добавить этого брата - "белый список-ips". У меня такая же проблема
Танвир
2
Как добавить белые списки IPS. я использую окна. Спасибо
garlapak 01
1

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

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"
Гарри Бош
источник
1

Очень часто эта ошибка появляется, если вы используете несовместимые версии 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

Виталий Николаенко
источник
1
Вы должны объяснить, как он может решить свою проблему. Вы просто определяете проблему, но как ее решить? Какие версии, например, совместимы?
Sebi
1
Я использую эту комбинацию: selenium-java 3.0.1 + ChromeDriver 2.27 (поддерживает Chrome v54-56)
Виталий Николаенко
1

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

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

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

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

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

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

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

или докер, передав JAVA_OPTSenv

  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=
GetoX
источник
0

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.
Кит Сугатхадаса
источник
-4

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

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

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

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

Красный Петух
источник