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 на удаленном ящике.