При запуске 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.
Я решил эту ошибку, установив драйвер браузера:
- Перейдите в браузере на сайт seleniumhq.org
- Выберите вкладку "Загрузки"
- Прокрутите страницу вниз до раздела "Браузер" и загрузите нужный драйвер, перейдя по ссылке, например, "Драйвер Google Chrome".
- Дважды щелкните загруженный файл, например, chromedriver_mac64(1).zip
- Дважды щелкните извлеченный файл, например, chromedriver
Ссылка: поищите на YouTube.com ошибку
Платформа: macOS High Sierra 10.13.3