Firefox в контейнере docker, доступном из selenium в другом

У меня есть контейнер docker, работающий с приложением rails (назовем его контейнером A), который должен выполнить некоторые очистки с помощью watir webdriver, используя firefox в качестве бэкэнда.

У меня установлен firefox в другом контейнере (контейнер B), и я хочу иметь возможность передать в контейнер a что-то вроде:

Selenium::WebDriver::Firefox::Binary.path= $DOCKER_RUN_CONTAINER_A

Итак, каждый раз watir Firefox запускает новый экземпляр CONTAINER_A запускает новый Firefox.

Я знаю, что легко заставить контейнеры общаться с помощью портов, но как насчет исполняемых? И, кстати, похоже ли это на хорошую дизайнерскую идею, изолирующую firefox в отдельном контейнере?

1 ответов


Да, это легко сделать. Просто запустите экземпляр Selenium Grid (который по умолчанию является гибридной комбинацией grid-node) на переднем плане на сервере docker (на порту 5555 или любом другом). Затем вы можете использовать Ruby с привязками Селена (не WatiR), чтобы управлять браузером firefox на удаленном ящике.