Python - Невозможно создать сеанс с автономным сервером Selenium с помощью htmlunitdriver - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь использовать удаленный автономный сервер Selen с драйвером htmlUnit и скриптом Python.
Прежде всего, я запускаю автономный сервер с драйвером htmlUnit

java -cp htmlunit-driver-2.35.1-jar-with-dependencies.jar -jar selenium-server-standalone-3.141.0.jar

09: 28: 31.731 INFO [GridLauncherV3.parse] - версия сервера Selenium: 3.141.0, версия: 2ecb7d9a 09: 28: 31.810 ИНФОРМАЦИЯ [GridLauncherV3.lambda $ buildLaunchers $ 3] - Запуск автономного сервера Selenium через порт 4444 2019-05-08 09: 28: 31.857: INFO :: main: регистрация инициализирована при 317ms в org.seleniumhq.jetty9.util.log.StdErrLog 09: 28: 32.059 ИНФОРМАЦИЯ [WebDriverServlet.] - Инициализация WebDriverServlet 09: 28: 32.543 ИНФОРМАЦИЯ [SeleniumServer.boot] - Selenium Server запущен и работает через порт 4444

После этого я пытаюсь использовать драйвер htmlunit в моем скрипте pyhton

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities={'browserName': 'htmlunit', 'version': '2','javascriptEnabled': True})
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

Но я получаю эту ошибку

selenium.common.exceptions.SessionNotCreatedException: Сообщение: невозможно создать сеанс из { "требуемые возможности": { "browserName": "htmlunit", "javascriptEnabled": правда, "версия": "2" }, "возможности": { "firstMatch": [ { "browserName": "htmlunit" }, { "browserName": "htmlunit", "browserVersion": "2" } ] } } Информация о сборке: версия: '3.141.0', ревизия: '2ecb7d9a', время: '2018-10-31T20: 22: 52' Системная информация: хост: 'DESKTOP-xxxx', ip: 'xxx.xxx.xxx.xxx', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10 .0 ', java. версия: '1.8.0_212' Информация о драйвере: driver.version: неизвестно Трассировки стека: в org.openqa.selenium.remote.server.NewSessionPipeline.lambda $ null $ 4 (NewSessionPipeline.java:76) в java.util.Optional.orElseThrow (нет: -1) в org.openqa.selenium.remote.server.NewSessionPipeline.lambda $ createNewSession $ 5 (NewSessionPipeline.java:75) в java.util.Optional.orElseGet (Нет: -1) в org.openqa.selenium.remote.server.NewSessionPipeline.createNewSession (NewSessionPipeline.java:73) в org.openqa.selenium.remote.server.commandhandler.BeginSession.execute (BeginSession.java:65) в org.openqa.selenium.remote.server.WebDriverServlet.lambda $ handle $ 0 (WebDriverServlet.java:235) в java.util.concurrent.Executors $ RunnableAdapter.call (Нет: -1) в java.util.concurrent.FutureTask.run (нет: -1) в java.util.concurrent.ThreadPoolExecutor.runWorker (нет: -1) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (нет: -1) at java.lang.Thread.run (Нет: -1)

Кажется, я правильно следовал документации, но не понимаю, где может быть ошибка.
Можете ли вы сказать мне, как я могу решить эту проблему?

Спасибо

1 Ответ

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

Согласно java документации командной строки:

Когда вы используете опцию -jar, указанный JAR-файл является источником всех пользовательских классов, а другие настройки пути к классам игнорируются .

Поэтому вам нужно изменить команду, которую вы используете для запуска Selenium Grid , чтобы она выглядела так:

java -cp "htmlunit-driver-2.35.1-jar-with-dependencies.jar;selenium-server-standalone-3.141.59.jar" org.openqa.grid.selenium.GridLauncherV3

Я бы также рекомендовал изменить эту строку:

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities={'browserName': 'htmlunit', 'version': '2','javascriptEnabled': True})

к этому:

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

таким образом, у вашего скрипта больше шансов выжить в будущем обновлении библиотек

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