SessionNotCreatedException: Сообщение: невозможно создать новый сервис: ChromeDriverService с ChromeDriver и SeleniumGrid через Python

1

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

The node is registered to the hub and ready to use 

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

selenium.common.exceptions.SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService

Бинарные версии:

  • автономная версия селена: 3.14.0
  • версия удалённого драйвера selenium: selenium == 3.14.1
  • версия для python: 3.6.4

Автор сценария:

import os
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',
                          desired_capabilities=DesiredCapabilities.CHROME)

Центр установки:

#java -jar /Users/admin/selenium-server-standalone-3.14.0.jar -host localhost -role hub

Узел регистрации:

#java -jar /Users/admin/selenium-server-standalone-3.14.0.jar -role node

Ошибка:

E       selenium.common.exceptions.SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService
E       Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
E       Driver info: driver.version: unknown
E       Stacktrace:
E           at org.openqa.selenium.remote.server.ServicedSession$Factory.lambda$get$0 (ServicedSession.java:134)
E           at org.openqa.selenium.remote.server.ServicedSession$Factory.apply (ServicedSession.java:151)
E           at org.openqa.selenium.remote.server.ActiveSessionFactory.lambda$apply$12 (ActiveSessionFactory.java:177)
E           at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:193)
...
E           at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511)
E           at java.util.concurrent.FutureTask.run (FutureTask.java:266)
E           at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
E           at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
E           at java.lang.Thread.run (Thread.java:745)

../lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py:242: SessionNotCreatedException
Теги:
selenium
selenium-webdriver
selenium-chromedriver
selenium-grid

1 ответ

0
Лучший ответ

Это сообщение об ошибке...

selenium.common.exceptions.SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService

... подразумевает, что ChromeDriver не смог запустить/создать новый ChromeDriverService.

В командах есть несколько проблем и несовместимость между версией используемых вами двоичных файлов:

  • Ваша версия JDK - это 1.8.0_91, которая довольно древняя.
  • Обновите JDK до последних уровней JDK 8u181.
  • Для регистрации Selenium Grid Hub вам необходимо использовать следующую команду:

    >java -jar /Users/admin/selenium-server-standalone-3.14.0.jar -role hub
    
  • Чтобы зарегистрировать узел селеновой сетки для ChromeDriver и Chrome, вам необходимо передать абсолютный путь к ChromeDriver вместе с ключом и значением регистрационного URI следующим образом:

    >java -Dwebdriver.chrome.driver=/path/to/chromedriver.exe -jar /Users/admin/selenium-server-standalone-3.14.0.jar -role node -hub http://<IP_GRID_HUB>:4444/grid/register
    
  • Блок кода выглядит хорошо для меня.

  • 0
    благодарю вас. но я не хочу использовать мой локальный хромедрайвер. Я просто хочу использовать удаленный веб-драйвер селена по любой причине, по которой мне нужно добавить -Dwebdriver.chrome.driver когда-нибудь зарегистрировать узел?
  • 0
    @ A.Lee Что ты имеешь в виду под ... местный хромедрайвер ... ? Вам необходимо иметь хромедрайвер для регистрации узла в концентраторе в качестве обязательной меры. -Dwebdriver.chrome.driver является обязательным аргументом для указания местоположения хроматического драйвера в конфигурации Grid . Дайте мне знать, если у вас есть другие вопросы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню