Проблема с Geckodriver / Firefox при выполнении тестов Robot Framework Selenium внутри контейнера Docker - PullRequest
0 голосов
/ 11 июня 2019

В рамках конвейера сборки моего проекта мы должны выполнить серию приемочных тестов ssh / web с использованием Robot Framework и Docker. В настоящее время мы создаем Docker-контейнер и запускаем веб-тесты ssh и selenium внутри Docker-контейнера.

Python - 2,7 RobotFramework - 3.1.1 SeleniumLibrary (для робота) - 3.3.1 Селен - 3.1 geckodriver - 0.21.0 Firefox - 60.7.0

Когда я пытаюсь набрать IP-адрес, я продолжаю сталкиваться с этой ошибкой:

WebDriverException: Message: Reached error page: about:neterror?e=connectionFailure&u=http%3A//172.20.0.158/&c=UTF-8&f=regular&d=Firefox%20can%E2%80%99t%20establish%20a%20connection%20to%20the%20server%20at%20172.20.0.158.

Изначально я подозревал, что это может быть связано с проблемой использования несовместимых версий библиотек для Selenium, GeckoDriver и Firefox. Однако после некоторого тестирования я могу использовать некоторые адреса, например http://www.google.com,, но не IP-адрес.

Ниже приведены два теста: Тест Google проходит, но тест Дженкинса не выполняется, с сообщением об ошибке выше.

Google Test
    Open Browser    http://www.google.com   ff
    Page Should Contain     Google
    Close Browser

Jenkins Test
    Open Browser    http://100.00.00.00   ff
    Page Should Contain     Jenkins
    Close Browser

(я не указал фактический IP-адрес)

IP-адрес для теста Jenkins, когда я обращаюсь к нему в браузере, попадает на сервер Jenkins, поэтому я знаю, что IP-адрес правильный. Я просто не уверен, почему Firefox не может установить соединение с ошибками.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация - я могу предоставить ее. Спасибо!

1 Ответ

0 голосов
/ 12 июня 2019

В сообщении об ошибке вы пытаетесь открыть адрес 172.20.0.158.Если это именно тот, который вы бьете, то он находится в одном из частных диапазонов - 172.16.0.0/12, более конкретно (например, в диапазоне, подобном более популярному в домашних сетях 192.168.0.0/24 - немаршрутизируемый из других сетей) .
Если ваш док-узел не может получить к нему доступ, то его таблица маршрутизации, скорее всего, неправильно настроена.Вы сказали, что смогли открыть целевой URL-адрес, но, возможно, вам нужно было попробовать с другого компьютера (вашего рабочего, хоста докера?), Маршруты которого установлены так, как они должны.

Поскольку в докере работает sshd, подключитесь к нему и попробуйте открыть URL с помощью:

curl http://172.20.0.158/

Если это удастся, то это проблема Firefox;если происходит сбой с аналогичной ошибкой, то это сетевая конфигурация.
И во время сеанса ssh вы можете распечатать таблицу маршрутизации с помощью этой команды:

ip route

(или, netstat -rn для формата вывода "old school" :).

...