В вашем журнале есть следующая строка:
1540501901605 geckodriver ОШИБКА Используемый адрес (ошибка ОС 98)
, который указывает, что драйвер пытается использоватьпорт, который уже используется каким-то другим процессом.Поскольку журнал не показывает, какой это порт, вы можете запустить драйвер с помощью strace
:
strace geckodriver 2>&1 | grep -iE 'bind|getsockname'
В моем случае я получаю следующие строки:
bind (3, {sa_family = AF_INET, sin_port = htons (4444), sin_addr = inet_addr ("127.0.0.1")}, 16) = 0
getsockname (3, {sa_family = AF_INET, sin_port = htons (4444)), sin_addr = inet_addr ("127.0.0.1")}, [128-> 16]) = 0
Затем можно проверить, какой процесс использует порт (например):
netstat -tulpn | grep -i 4444
В моем случае возвращается:
tcp 0 0 127.0.0.1:4444 0.0.0.0:* LISTEN 31471 / geckodriver
Согласно проблема с регистрацией портов geckodriver , вы можете позволить ОС выделить свободный порт:
geckodriver --port 0
Если все это не сработает, возможно, существует несовместимость между вашей версией geckodriver и селеном, поскольку эта ошибка в журнале предполагает:
geckodriver :: marionette TRACE <- [1,1, {"error": "неизвестная команда", "message": "newSession","StackTrace": "WebDriverError @ хром: //marionette/content/error.js: 178: 5 </p>
Я использую следующие версии:
- firefox 62.0.3
- geckodriver0,23,0
- селен 3,14,1