Селен-сервер не найден

Я использую последнюю версию Selenium Standalone Server (3.0.0-beta2) на компьютере с Windows (Windows Server 2012 R2 Standard) Установлена ​​Java (версия Java "1.8.0_101").

Я запускаю JAR с помощью следующей команды:

java -jar selenium-server-standalone-3.0.0-beta1.jar -port 8888

Теперь, когда я запрашиваю http://localhost:8888, я просто получаю сообщение об ошибке HTTP 404 от Jetty:

HTTP ERROR: 404

Problem accessing /. Reason:

    Not Found
Powered by Jetty://

Порт 8888 свободен и не используется никакой другой программой.

Это вывод консоли, когда я запускаю сервер:

11:17:26.292 INFO - Selenium build info: version: '3.0.0-beta1',     revision: '8e4315c'
11:17:26.292 INFO - Launching a standalone Selenium Server
2016-08-03 11:17:26.371:INFO::main: Logging initialized @1176ms
11:17:26.542 INFO - Driver class not found: com.opera.core.systems.OperaDriver
11:17:26.542 INFO - Driver provider com.opera.core.systems.OperaDriver is not registered
11:17:26.558 INFO - Driver provider org.openqa.selenium.safari.SafariDriver registration is skipped:
registration capabilities Capabilities [{browserName=safari, version=, platform=MAC}] does not match the current platform WIN8
2016-08-03 11:17:26.700:INFO:osjs.Server:main: jetty-9.2.15.v20160210
2016-08-03 11:17:26.793:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@6d8a00e3{/,null,AVAILABLE}
2016-08-03 11:17:27.027:INFO:osjs.ServerConnector:main: Started ServerConnector@1d057a39{HTTP/1.1}{0.0.0.0:8888}
2016-08-03 11:17:27.027:INFO:osjs.Server:main: Started @1839ms
11:17:27.043 INFO - Selenium Server is up and running

При попытке создать экземпляр RemoteWebDriver (с API .NET) я получаю следующее исключение:

new RemoteWebDriver(new Uri("http://127.0.0.1:8888"), DesiredCapabilities.HtmlUnitWithJavaScript())

Произошло необработанное исключение типа «OpenQA.Selenium.WebDriverException» в WebDriver.dll.

Дополнительная информация: Непредвиденная ошибка.

Ошибка 405

ОШИБКА HTTP: 405

Problem accessing /session. Reason:

    HTTP method POST is not supported by this URL


На платформе Jetty://


person Robin Güldenpfennig    schedule 03.08.2016    source источник


Ответы (1)


Конечная точка, которую вы указываете при создании экземпляра RemoteWebDriver, неверна.

Измените "http://127.0.0.1:8888" на "http://127.0.0.1:8888/wd/hub" и повторите попытку.

Причина, по которой http://localhost:8888 выдает ошибку, заключается в том, что не существует сервлета по умолчанию, предназначенного для обслуживания всех конечных точек. Что это

HTTP ERROR: 404

Problem accessing /. Reason:

    Not Found
Powered by Jetty://

намекает. Если бы это была ошибка, связанная с портом, вы бы увидели ошибку от Java с сообщением JVM_Bind при попытке запустить сам сервер.

Наконец, вы, кажется, запускаете сервер селена, а затем используете RemoteWebDriver для общения с ним. Есть какая-то конкретная причина, по которой вы не используете настройку Grid в этом случае?

Если вы собираетесь запускать свой сервер Selenium на другом компьютере, и ваши тесты выполняются на другом компьютере, вам следует рассмотреть возможность использования для этого Selenium Grid.

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

person Krishnan Mahadevan    schedule 05.08.2016
comment
Спасибо. Изменение URL решило мою проблему. Я использую эту настройку, потому что мне нужно безголовое решение. Вот почему я использую веб-драйвер HtmlUnit. Вообще я хочу запустить веб-драйвер в среде сервера процессов IIS. Таким образом, невозможно напрямую использовать Firefox, Chrome или Internet Explorer, поскольку пользователь пула приложений не может запустить процесс графического интерфейса. Или у вас есть рекомендации по этому поводу? - person Robin Güldenpfennig; 09.08.2016
comment
Вместо использования HtmlUnitDriver я бы рекомендовал JBrowserDriver (github.com/MachinePublishers/jBrowserDriver) (или) GhostDriver (github.com/detro/ghostdriver), который основан на PhantomJS. Я понимаю, что ghostdriver может не поддерживаться активно. Так что определенно стоит попробовать jBrowserDriver. - person Krishnan Mahadevan; 10.08.2016