Запуск автотестов на Selenoid - базовые настройки

контейнер с браузером создавался и через 30 сек убивался. Уже все ок после pull latest. Но всеравно спасибо за советы

1 лайк

Да, мы там в последних релизах поправили работу с сетью. Теперь нормально в CentOS должно работать.

1 лайк

Если кому интересно, вчера выложили статью про Selenoid. Selenium: done in 60 seconds. Selenium is nowadays an indisputable… | by Alexander Andryashin | Aerokube Скоро перевод доедет до Хабра.

4 лайка

Чет последняя версия aerokube/selenoid:latest
При GET http://localhost:4444/wd/hub/ возвращает 404 :thinking:

Соответсвенно, когда разворачиваю на удаленной тачке при запросе ChromeDriver, получаю сообщение в логе докера

[SESSION_FILED] Bad response from [http://172.17.0.3:4444/wd/hub] - [404 NOT Found]

попробуйте этот образ - aandryashin/selenoid

проблема решилась удалением строчки

“path” : “/wd/hub”

из browsers.json

1 лайк

Да, это не совсем очевидно. В контейнерах с Firefox в настоящее время стоит Selenium Server, в котором сессия создается на /wd/hub. В других же контейнерах (Chrome, Opera) мы ходит напрямую в соответствующий драйвер, поэтому там по-умолчанию нет префикса /wd/hub и сессия создается просто на /. Наша утилита конфигурации (GitHub - aerokube/cm: Configuration manager for Aerokube products) учитывает эти различия и сама скачивает свежие образы, поэтому рекомендуем пользоваться ей. Подробнее про это: GitHub - aerokube/selenoid: Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary..

Я как раз сегодня голову сломал, пока понял, почему именно не работает. При этом изначально пользовался Вашей утилитой. Она проставила в browsers.json строчку “path” : “/” для хрома, которую пришлось вручную просто удалить. С ней не работало :disappointed:

Вот интересно, с / в Хроме должно работать. Мы проверяли.

Дабы не плодить лишних тем, спрошу тут. Можно ли как-то менять настройки запуска xvfb?
Добавил скриншотилку к AfterMethod, показывает, что размер скриншота 945*955, а хотелось бы сделать более-менее стандартный размер.

да - Selenoid - A cross browser Selenium solution for Docker

Selenoid allows you to set custom screen resolution in containers being run. To do that simply pass screenResolution capability in your tests in form width x height x color-depth:
screenResolution: 1280x1024x24

Я кстати при прогоне тестов на контейнерах, которые поддерживаютVNC, тож замечал, что разрешение экрана по соотношению сторон картинки точно не 1920 на 1080 (д.б. по умолчанию). Может @vania_pooh объяснит, почему так.

Тоже вычитал это в доке, делаю так:

DesiredCapabilities browser = new DesiredCapabilities();
        browser.setBrowserName("chrome");
        browser.setVersion("59.0");
        browser.setCapability("screenResolution", "1920x1080");
        driver = new RemoteWebDriver(
                URI.create("http://192.168.4.38:4444/wd/hub").toURL(),
                browser);

Но всё равно не вижу каких-либо изменений размера скриншота.

UPD: повозился с дебагом и запущенными процессами, xvfb всё-таки запускается с нужными параметрами. А вот скриншот получается другого размера. Теперь совсем запутался))

2 лайка

Вы же учитываете что размер вьюпорта браузера и виртуального буфера xvfb это разные вещи? или там ну совсем разные разрешения?

совсем разные, в тесте пытаюсь выставить 1920x1080x24, а скрин получается 945x955x32
селеноид крутится в виртуалке virtualbox, пробовал менять параметры настроек видеосисетмы виртуалки - эффекта тоже не дало.

Разрешение экрана там выставляется правильное. Проблема в том, что окно по-умолчанию не распахивается на весь экран. Если сделать что-то типа:

driver.manage().window().setSize(new Dimension(1920, 1080));

… то будет скриншот будет правильный.

1 лайк

спасибо! Примерно к тому же дошёл опытным путём. Почему-то браузер в контернере не воспринимает вот это:
driver.manage().window().maximize();
При чем что хром, что ФФ. Пробовал с хромом фуллскрин, так он вообще на нём падает) получилось только через явное указание размера.

1 лайк

Как мы думаем это потому что в контейнере нет оконного менеджера, а голый Xvfb.

Кстати, на любые вопросы про Selenoid мы отвечаем вот в этом чатике: Telegram: Contact @aerokube