Принудительно привязать селен-вебдрайвер к локальному хосту - PullRequest
0 голосов
/ 12 мая 2019

При использовании selenium-webdriver что-то пытается привязаться к порту, прослушивая соединения с неуказанного хоста IPv6 / IPv4 (:: / 0.0.0.0).Это вызывает сообщение брандмауэра.

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

Пример кода, который повторяет проблему:

const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder().forBrowser('chrome').build();
setTimeout(() => {
  driver.quit();
}, 10000);

В macOS это показывает приглашение:

Вы хотите, чтобы приложение "узел"принимать входящие сетевые подключения?

Очевидно, что выбор «deny» по-прежнему позволяет выполнять тесты (поскольку все равно локально), и после выбора этой опции ОС запоминает выбор до обновления узла, ноЯ бы хотел заблокировать тест, чтобы это не было проблемой.

Что вызывает это?Как я могу это настроить?

1 Ответ

1 голос
/ 12 мая 2019

Вы можете использовать Selenium Standalone Server и привязать его к определенному IP-адресу . Кроме того, вы можете отключить поиск адресов IPv6 .

  1. Запустите Selenium Standalone Server вроде:

    java -Djava.net.preferIPv4Stack=true -jar selenium-server-standalone-x.xx.x.jar -host 10.20.30.40
    
  2. Измените код инициализации вашего веб-драйвера, чтобы явно установить адрес сервера Selenium, например:

    const driver = new webdriver.Builder().forBrowser('chrome').usingServer('http://10.20.30.40:4444/wd/hub').build();
    

    замените 10.20.30.40 IP-адресом по вашему выбору (IP-адрес или псевдоним должны существовать в системе, в которой вы запускаете тест)

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...