Установка сustom WebDriver DesiredCapabilities и их чтение из сессии браузера

Доброго времени суток!
Кто-то задавался вопросом о возможности добавлять кастомные DesiredCapabilities в браузерную сессию, а потом их вычитывать через API?

Что-то похожее на это

final DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("custom", "customValue");

До старта браузера задать капабилити или после?

Не совсем понятно в чем сложность.
Через рефлексию можно сделать же.

До старта.
Задать не проблема. Задал как показано в вопросе.
Сложность в понимании как и где эти капабилити потом вычитать (и возможно ли это) из браузерной сессии (не в коде приложения, которое запускает браузер)? Например, через API “wd/hub/session”

Сомневаюсь, ведь капабилити вы задаёте в веб-драйвере, а не в браузерной сессии.

Хотя, возможно через селениумовский сервер как-то и можно.

А какая цель-то?

Вдаваясь в подробности.
Есть Selenoid GGR, на котором ранаются тесты. Через его API (http://:8888/status) можно получить инфу о том, какие тесты ранаются. Также есть стандартное WebDriver API (http:///wd/hub/session/), через которое можно получить ещё немного информации о сессии драйвера. Есть приложение, которое обращается к этим API и выводит сводную информацию о запущенных тестах, которой не хватает в Selenoid UI.
Хотелось понять, можно ли через капабилити или другим путём добавлять в сессию драйвера инфу, которую потом можно вычитать в Selenoid или WebDriver API.

Дополнительную инфу можно передать с помощью labels - Selenoid - A cross browser Selenium solution for Docker и потом вычитать ее в /status эндпоинте в selenoid(если у вас один инстанс) или ggr-ui(если selenoid инстансов много и вы используете ggr)

Выглядит примерно так:

Map<String,String> labels = new HashMap<>();
labels.put("MyTestCapability", "TEST");
capabilities.setCapability("labels", labels);

1 Like

Спасибо огромное! Это то, что нужно. Не заметил этот маленький раздел в документации. Хотя был уверен, что что-то подобное должно быть.