Під час запуску WebDriver із браузером Chrome з’являється повідомлення «Дозволено лише локальні підключення», хоча браузер запускається належним чином


85

Коли я запускаю браузер 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();
    }
}

Відповіді:


96

Це лише інформаційне повідомлення. Повідомлення повідомляє, що виконуваний файл chromedriver буде приймати лише підключення від локальної машини.

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


У моєму випадку тестова зупинка після відкриття браузера і сторінки порожня. У url Not secure data:, Тож у цьому сенсі це питання. Ви уявляєте, чому?
SMPH

отже, якщо я заходжу на веб-сайт, який використовує зв'язок https із селеном за допомогою driver.get ( і т.д. ... ), чи означає це, що інформація, надіслана на цей сайт, зашифрована за допомогою https?
Майк Сандстрем,

Зв'язок HTTP (незахищений), про який йдеться у цій відповіді, здійснюється між мовними прив'язками (код Selenium у Java, C #, Python тощо) та драйвером браузера (chromedriver, geckodriver тощо). Зв'язок між браузером та веб-сайтом незмінний. Якщо ви використовуєте HTTPS у веб-переглядачі, зв'язок між браузером та веб-сервером все одно повинен бути зашифрованим.
JimEvans

У мене та сама проблема: / Чи була ця проблема колись виправлена?
user3430861

13

Я отримував точно такі ж помилки. Сьогодні я боровся з цим питанням кілька годин. Здавалося, це спричинено невідповідністю версій chromedriver та селену-сервер-автономний. Файл config.js посилався на каталог, який мав chromedriver 2.9 та selenium-server-standalone 2.35.0. Коли я переконався, що ми посилаємось на 2.10 та 2.42.2, це спрацювало.


13

Не обов'язково найкраща практика, але моє середовище було локальною мережею з декількома машинами, які потребували доступу до селену.

Під час запуску хромедрівера ви можете пройти через такий параметр:

chromedriver --whitelisted-ips=""

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

Запуск ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) через порт 9515 Усі віддалені підключення дозволені. Натомість використовуйте білий список!

Опрацювання в кращому випадку, але це працює.

Відносна реєстрація


5

Це траплялося зі мною, коли мені довелося виправити старий проект, який давно не дивився. Хромедрівер, пов'язаний з проектом, був несумісний з моєю версією chrome, тому, коли я оновив хромедрівер, він працював нормально.


3

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


3
як мені додати цього братана - "білий список-ips". У мене така сама проблема
Танвір

2
Як додати білий список-ips. я використовую windows. Дякую
garlapak

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.

Селен 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
Вам слід пояснити, як він може вирішити свою проблему. Ви просто визначите проблему, але як це вирішити? Наприклад, які версії є сумісними?
Себі

1
Я використовую цю комбінацію: селен-Java 3.0.1 + ChromeDriver 2.27 (підтримує Chrome v54-56)
Віталій Ніколаєнко

1

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

у рядку sinle: вам потрібно передати --whitelisted-ips = у chrome драйвер (не chrome!) виконувані файли

Ви можете зробити це кількома способами:

Якщо ви використовуєте ChromeDriver локально / безпосередньо з коду, просто вставте рядки нижче перед запуском ChromeDriver

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

Якщо ви використовуєте його віддалено (наприклад, концентратор / сітка селену), вам потрібно встановити системну властивість при запуску вузла, як у команді:

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=

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 Driver
  4. Двічі клацніть завантажений файл, наприклад, chromedriver_mac64 (1) .zip
  5. Двічі клацніть на витягнутому файлі, наприклад, chromedriver

Довідково: шукайте помилку на YouTube.com

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.