Selenoid ui не видит браузеры

Обновлено: 07.07.2024

October

September

August

March

February

  • February 24, 2021 » Вышла Selenide 5.19.0
  • February 11, 2021 » Вышла Selenide 5.18.1

January

December

  • December 30, 2020 » Вышла Selenide 5.17.2
  • December 26, 2020 » Вышла Selenide 5.17.0

November

  • November 25, 2020 » Вышла Selenide 5.16.2
  • November 20, 2020 » Вышла Selenide 5.16.0
  • November 17, 2020 » Почему прокси не работает в Selenoid?

September

August

  • May 29, 2020 » Вышла Selenide 5.12.2
  • May 25, 2020 » Вышла Selenide 5.12.1
  • May 23, 2020 » Вышла Selenide 5.12.0

April

March

February

  • February 28, 2020 » Вышла Selenide 5.8.0
  • February 7, 2020 » Вышла Selenide 5.7.0

January

December

  • December 26, 2019 » Вышла Selenide 5.6.0
  • December 24, 2019 » Трюки с JavaScript
  • December 22, 2019 » Defaŭlta lingvo
  • December 20, 2019 » Теория большого вейта
  • December 18, 2019 » Как получить сетевые запросы с помощью прокси
  • December 17, 2019 » Как получить логи браузера через JavaScript
  • December 16, 2019 » Как получить логи браузера
  • December 15, 2019 » Drag and Drop
  • December 12, 2019 » Actions
  • December 10, 2019 » Как скачать файл с помощью Selenide
  • December 9, 2019 » Почему статики запретили, а потом разрешили?
  • December 7, 2019 » Как протестировать защиту от CSRF атаки
  • December 6, 2019 » Как визуализировать клик
  • December 4, 2019 » Как быстро проверить размер?
  • December 3, 2019 » setWebDriver или WebDriverProvider?
  • December 2, 2019 » Как надругаться над Селенидом
  • December 1, 2019 » Главный Алгоритм

November

October

  • October 31, 2019 » Вышла Selenide 5.5.0
  • October 16, 2019 » Вышла Selenide 5.4.1

September

  • September 7, 2019 » Вышла Selenide 5.3.1
  • September 2, 2019 » Вышла Selenide 5.3.0

August

February

December

November

October

August

April

  • April 25, 2018 » Вышла Selenide 4.11.2
  • April 3, 2018 » Вышла Selenide 4.11.1
  • April 2, 2018 » Вышла Selenide 4.11.0

January

December

October

September

  • September 30, 2017 » Вышла Selenide 4.7
  • September 9, 2017 » Вышла Selenide 4.6

February

January

December

  • December 30, 2016 » Вышла Selenide 4.2
  • December 1, 2016 » Вышла Selenide 4.1

November

October

  • October 20, 2016 » Обёртка или чистый вебдрайвер?
  • October 15, 2016 » Вышла Selenide 4.0
  • October 14, 2016 » Вышла Selenide 3.11

September

  • September 26, 2016 » Вышла Selenide 3.10
  • September 3, 2016 » Вышла Selenide 3.9.2

August

April

March

February

January

  • January 29, 2016 » Вышла Selenide 3.2
  • January 17, 2016 » Вышла Selenide 3.1

November

  • November 30, 2015 » Вышла Selenide 3.0
  • November 30, 2015 » Изменения в Selenide 2.25
  • November 16, 2015 » Selenide меняет лицензию на MIT
  • November 13, 2015 » Презентация Selenide на Devoxx 2015
  • November 8, 2015 » Изменения в Selenide 2.24

September

  • September 23, 2015 » Доклад о Selenide на SeleniumConf 2015
  • September 15, 2015 » Изменения в Selenide 2.23

August

December

  • December 28, 2014 » Как тестировать GMail
  • December 17, 2014 » Где взять время на рефакторинг
  • December 13, 2014 » The fast and the continuous @ SQA Days 16
  • December 9, 2014 » Вы находите не те ошибки

November

October

September

  • September 28, 2014 » Изменения в Selenide 2.13 и 2.14
  • September 25, 2014 » Как начать писать UI тесты за 10 минут

August

April

March

  • March 15, 2014 » Изменения в Selenide 2.9
  • March 12, 2014 » Selenide downloads: 200 уникальных IP
  • March 11, 2014 » Selenide за пять минут от Glen Smith

October

August

April

Мотивация

Почему недостаточно Selenium webdriver

Зачем понадобилась ещё одна обёртка над Selenium?

Page Objects

Можно ли использовать Пэдж Обжекты с Selenide?

Да! Вы можете использовать Пэдж Обжекты с Selenide.

Более того, с Selenide ваши page objects станут короче и читабельнее. Тут подробности.

Настройки

Где я могу найти все доступные настройки Selenide?

Описание всех настроек и значений по умолчанию можно найти в javadoc.

Selenide имеет очень разумные настройки по умолчанию, которые должны быть удобны для большинства “нормальных” проектов.

Но если всё-таки захочется запустить тесты с другими настройками, это можно сделать либо через System property:

либо программно, прямо в тестах:

Браузеры

Можно ли запустить тесты Selenide на Internet Explorer? А headless-браузере?

Да. Selenide можно запускать с любым браузером, для которого существует webdriver. Самые популярные браузеры поддерживаются из коробки (chrome, firefox, edge, ie, safari, opera). Некоторые менее популярные тоже поддерживаются, но требуют пары строк конфигурации (phantomjs, htmlunit). См. Wiki.

Другие браузеры тоже можно использовать, передав имя класса вебдрайвера.


Например, чтобы запустить тесты с браузером Firefox: -Dselenide.browser=firefox

Как сказать Selenide использовать браузер с моим кастомным профайлом?

Вы можете подсунуть Selenide любой экземпляр webdriver, который вы можете создать с какими угодно параметрами. Смотри примеры на Wiki.

Можно ли использовать Selenide в связке с Selenium Grid?

Можно ли использовать Selenide в связке с Selenoid?

Можно ли использовать Selenide для тестирования мобильных приложений?

Да, Selenide поддерживает тестирование мобильных приложений с помощью библиотеки Appium.

  1. Мы рекомендуем использовать селенидовский плагин selenide-appium.
  2. Вы можете найти рабочие примеры на гитхабе
  3. Посмотрите презентацию Selenide для мобилок

Билд-скрипты

Как запустить тесты Selenide на CI - сервере непрерывной интеграции?

Для этого нужно написать билд-скрипт. Скорее всего он у вас уже есть. На Wiki page есть несколько примеров на Ant и Gradle.

Скриншоты (снимок экрана)

Как сказать Selenide сохранять скриншоты в другую папку?

Вкладки/окна браузера

Как переключаться между разными окошками / вкладками браузера?

Для этого можно использовать API самого Selenium WebDriver.

  • getWebDriver().getWindowHandles() - возвращает множество всех вкладок или окон
  • getWebDriver().getWindowHandle() - возвращает уникальный идентификатор активной вкладки или окна.

Исходный код Selenide

Могу ли я посмотреть исходный код Selenide?

Да. Исходный код Selenide выложен на гитхабе.

Могу ли я вносить изменения в Selenide?

Конечно! На то он и open source. Если умеете кодить сами, смело создавайте Pull Request, если нет - оформляйте свои пожелалки в виде issue.

Лицензия

Если наш заказчик потребует исходный код тестов, позволяет ли лицензия Selenide ему их передать?

Selenide - бесплатный продукт с открытым исходным кодом, распространяемый по лицензии MIT. Проще говоря, это значит, что вы можете делать с ним всё что угодно.

Cucumber – это инфраструктура тестирования, позволяющая преодолеть разрыв между разработчиками ПО и бизнес-менеджерами. Тесты пишутся на простом языке управляемой поведением разработки (BDD) в стиле Given, When, Then (условия, операция, результат), которой понятен любому пользователю. Затем контрольные тесты записываются в файлы функций, охватывающие один или несколько сценариев тестирования. Cucumber интерпретирует тесты на указанном языке программирования и использует Selenium для управления тестами в браузере.

Selenoid представляет собой альтернативное решение Selenium Server, хотя суть та же — организация работы драйверов.

В этом посте будет запуск простого браузерного теста с помощью Cucumber и Selenoid в Gitlab CI c Allure отчетом в конце.

Подготовка

На вашей операционной системе обязательно должен быть установлен и запущен Docker.

Установка Selenoid

Если у вас Redhat-based операционная система, вы можете использовать мой репозиторий для установки Configuration manager.

Если у вас не Redhat-based операционная система, то вы можете скачать и использовать бинарник Configuration manager.

Запуск Selenoid используя Configuration manager и формирование browsers.json

Если у вас нет прямого доступа в инет и docker образы вы скачиваете через registry.

Если у вас есть прямой доступ в инет.

Ключ --force перезаписывает файл browsers.json.

Итоговый файл browsers.json для тестирования Chrome и Firefox. Заметьте что path у Chrome и Firefox разные.

Изменение browsers.json

При изменении версий браузеров можно изменить файл browsers.json и перезагрузить selenoid.

Но если вы используете ключ --force , то browsers.json перезапишится с новыми версиями браузеров.

Проверяем что docker контейнер запустился и образы скачались.


Запуск Selenoid UI используя Configuration manager

Проверяем что docker контейнер запустился и образы скачались.


Заходим в selenoid-ui по адресу ip-где-вы-запускали-selenoid-и-selenoid-ui:8080

У вас должно быть гореть зеленым 2 слова CONNECTED и написано firefox и chrome.


В capabilities видим доступные браузеры.



или на другой адрес, там где вы запустили selenoid.

В файле WebdriverBeanConfig.java добавляем Capability для запуска chrome. Если вы используете прокси сервер, то добавьте строки про прокси как на стриншоте.


В каждом файле java вы можете включить или выключить запись видео, удаленный просмотр или управление через VNC и запись логов в файл. Чтобы выключить опцию нужно добавить 2 слеша в начало строки.


Запуск тестов

В директории demo-tests запускаем тесты:

Если вам нужно указать настройки и у вас используется maven-прокси (Nexus, Artifactory)

Если запускаем с прямым доступом в инет и без каких-либо настроек

Скорость

Общее время запуск 1 теста занимает меньше 1 минуты.

Запуск тестов в Gitlab CI

Чтобы каждый раз не запускать Selenoid и Selenoid-UI при запуске тестов, можно запустить Selenoid и Selenoid-UI один раз при запуске Gitlab Runner с помощью Ansible, Puppet, Chef или других инструментов.

После строки echo "http://$HOSTNAME:9090$PATH_WITHOUT_HOME/target/site/allure-maven-plugin/"

Появится URL, по которому можно просмотреть Allure отчет.

Для отображения Allure отчета нужно чтобы на gitlab runner был установлен nginx с такой конфигурацией:

I am new to Aerokube Selenoid . Appreciate for the best efforts done .

Started using with docker compose with latest version

After Running docker-compose up from the folder with browsers.json being in same folder

when navigated to 127.0.0.1 could see selenoid UI , but Browsers List is empty
also

when running from my code
"URI.create("http://172.17.0,1:4444/wd/hub").toURL(),"
browser driver instance could not be started , almost spent a day time to look into . have an critical project looking to implement .

Please help me on this and save my time. Understand its some minor configuration issue.

earlier reply much appreciated

The text was updated successfully, but these errors were encountered:

vania-pooh commented Aug 3, 2019

when i tried with cm file with below commands it works

Please help me knowing how this to be dealt with Dockercompose . also help me knowing if docker compose

vania-pooh commented Aug 3, 2019

Hello Ivan , Thanks for your kindly help to reply promptly . I made changes as per document . My bad could not see it on an urgent implementation for an PoC. Currently browser json is as below ``` < "chrome": < "default": "75.0", "versions": < "75.0": < "image": "selenoid/vnc:chrome_75.0", "port": "4444", "tmpfs": <"/tmp": "size=512m">, "path" : "/wd/hub", "hosts" : ["http://selenoid"], "shmSize" : 268435456, "cpu" : "1.0" > > > > ``` and docker-compose.yml ``` version: '3' services: selenoid: network_mode: bridge image: aerokube/selenoid:latest-release volumes: - "$PWD:/etc/selenoid" - "/var/run/docker.sock:/var/run/docker.sock" - "$PWD:/opt/selenoid/video" - "$PWD:/opt/selenoid/logs" environment: - OVERRIDE_VIDEO_OUTPUT_DIR=$PWD command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"] ports: - "4444:4444" selenoid-ui: network_mode: bridge image: aerokube/selenoid-ui ports: - "8080:8080" command: -selenoid-uri http://selenoid:4444 ``` but still i get below issue ``` selenoid-ui_1 | 2019/08/03 13:14:06 [ERROR] [Can't get status: Get http://selenoid:4444/status: dial tcp: lookup selenoid on 192.168.65.1:53: no such host] selenoid-ui_1 | 2019/08/03 13:14:06 Client added. 1 registered clients selenoid-ui_1 | 2019/08/03 13:14:06 [ERROR] [Can't get status: Get http://selenoid:4444/status: dial tcp: lookup selenoid on 192.168.65.1:53: no such host] selenoid-ui_1 | 2019/08/03 13:14:06 Removed client. 0 registered clients ``` also in selenium UI browsers list is not getting fetched(says loading. ) Please help me to proceed this hello Aerokube/Selenoid-Ui team , almost tried all ways and facing same issues again . please let me know sample browser json and docker-compose including selenoid and selenoid UI . along please tell me which host entry to be added and which URL to be used in script to call tests with port 4444 Quick help much appreciated:) Regards, Aaditya lanwen changed the title No Browser Versions in Selenoum UI and Web driver issue from code Aug 16, 2019 lanwen changed the title Can't setup docker-compose based launch Aug 16, 2019

lanwen commented Mar 10, 2020

@AadityaSeshadri did you solve your issue? Did you try to add dependency between containers explicitly?

sonamqaautomation commented Mar 19, 2021

Try this dom-compose.yml , this worked like a charm:-
version: '3'
services:
selenoid:
network_mode: bridge
image: aerokube/selenoid
volumes:
- "/C/Users/sonam/Documents/newselenoid:/etc/selenoid"
- "/var/run/docker.sock:/var/run/docker.sock"
- "/C/Users/sonam/Documents/newselenoid/video:/opt/selenoid/video"
environment:
- OVERRIDE_VIDEO_OUTPUT_DIR=/Users/sonam/Documents/newselenoid/video
- TZ=Europe/Amsterdam
command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video"]
ports:
- "4444:4444"

selenoid-ui:
image: "aerokube/selenoid-ui"
network_mode: bridge
links:
- selenoid
ports:
- "8080:8080"
command: ["--selenoid-uri", "http://selenoid:4444"]

jimbalatero commented Sep 17, 2021

I have this config and still doesn't work

vania-pooh commented Sep 17, 2021

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

I still dont undestand how to get this working. I tried your docker-compose file to start up selenoid and selenoid-ui. Then added this to my java code:
ChromeOptions options = new ChromeOptions();
options.addArguments("enableVNC=true");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

Is that what you mean in your documentation by "Pass enableVNC capability in tests". Either case I can see that the session is started but the VNC page sais "Sessions without VNC: 1".

The text was updated successfully, but these errors were encountered:

aandryashin commented Jun 8, 2017

The correct capability should be:
capabilities.setCapability("enableVNC", true);

remy-tiitre commented Jun 8, 2017

capabilities.setCapability("enableVNC", true); That was the key that enabled the VNC. Don't know why I was trying to add it as ChromeOption. Maybe its a good idea to make a code example to documentation. But still both, VNC and Logs, will try to connect and then say disconnected. At first I tried to used custom built chrome image, but as that failed I started to use selenoid-images. Result is the same. In Selenoid UI I can see the sessions, they count for quota, but Logs and VNC connections seem to fail. Container logs don't provide much that would help me forward.

vania-pooh commented Jun 8, 2017

Please then describe your environment:

  1. Selenoid version
  2. UI version
  3. Operating system
  4. Are you running in Docker or not

remy-tiitre commented Jun 8, 2017

On CentOS you have to add IPTables rule to enable communication between the containers on the same host. Have done that. (iptables -I INPUT 4 -i docker0 -j ACCEPT) Without that UI doesn't even see the sessions.

vania-pooh commented Jun 8, 2017

@remy-tiitre Selenoid UI is using Selenoid port 5900 to fetch VNC data. Couldn't it be that this port is unaccessible for some reason? However so far as stats are shown there is access to Selenoid port 4444. Could you also provide Selenoid UI container logs last lines?
@aandryashin, @lanwen any ideas?

remy-tiitre commented Jun 8, 2017

I changed the image at browsers.json and confirmed that selenoid will start selenoid/vnc:chrome_58.0. But the error remains the same. Session is there but connection failes for both - VNC and Logs.

How does UI fetch the logs, as it seems to be a similar connection issue there.

@remy-tiitre this is done via websocket connection from UI to Selenoid :4444/logs/<session-id> .

Читайте также: