Selenoid¶
Что это такое?¶
Selenoid - это аналог Selenium Hub, который позволяет запускать инстансы браузеров в Docker.
Как правило используется вместе с Selenoid UI - это веб-интерфейс, который позволяет смотреть за ходом выполнения сценариев инстансов, за их логами и так далее.
Ещё Selenoid позволяет записывать видео в браузере, сохранять логи в ELK (и не только), и потребляет ресурсов намного меньше, чем Selenium Hub.
Установка через Docker Compose¶
Для работы selenoid и selenoid ui должны использовать одну и ту же сеть с контейнерами. Этого можно добиться при помощи установки сети в bridge. Сама конфигурация ниже:
version: '3'
services:
selenoid:
image: "aerokube/selenoid"
network_mode: bridge
ports:
- "4444:4444"
volumes:
- "./browsers.json:/etc/selenoid/browsers.json" # текущий каталог должен содержать browsers.json
- "/opt/video:/opt/selenoid/video" # каталог с видео
- "/opt/logs:/opt/selenoid/logs" # каталог с логами
- "/var/run/docker.sock:/var/run/docker.sock" # подключаемся к сокету докера чтобы иметь возможность создавать инстансы браузеров
command: ["-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"]
restart: unless-stopped
selenoid-ui:
image: "aerokube/selenoid-ui"
network_mode: bridge
links:
- selenoid
ports:
- "8080:8080"
command: ["--selenoid-uri", "http://selenoid:4444"]
restart: unless-stopped
browsers.json в себе содержит набор конфигураций браузеров, которые могут использовать клиенты selenoid.
{
"firefox": {
"default": "latest",
"versions": {
"latest": {
"image": "selenoid/firefox",
"port": "4444",
"path": "/wd/hub",
"tmpfs": {"/tmp":"size=512m"}
}
}
},
"chrome": {
"default": "latest",
"versions": {
"latest": {
"image": "selenoid/chrome",
"port": "4444",
"tmpfs": {"/tmp":"size=512m"}
}
}
}
}
Запускаем:
docker compose up -d
После чего веб интерфейс будет доступен на порту 8080, а с самим Selenoid можно будет работать по 4444 порту.