Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Запуск remotewebdriver для selenide в обертке Docker+jbehave

maven
linux
docker
centos
jbehave
webdriver
selenide
java
Теги: #<Tag:0x00007f7b64686dc0> #<Tag:0x00007f7b64686bb8> #<Tag:0x00007f7b646869d8> #<Tag:0x00007f7b64686780> #<Tag:0x00007f7b64686000> #<Tag:0x00007f7b64685d30> #<Tag:0x00007f7b64685b28> #<Tag:0x00007f7b64685948>

(Dzmitry Ihnatsyeu) #1

Всем привет!

Окружение, в котором должны запускаться тесты развертывается с помощью докера, а значит напрямую запустить браузер не получиться( т.к. тесты запускаются на чистой CentOS ноде) -> веб-драйвер должен запускаться по remoteUrl.

Какой лучший способ задать RemoteDriver в Selenide?
Единственное, что нашел это через WebDriverRunner.setWebDriver(myWebDriver). Но как говорит мануал, в данном случае нам самим надо заботиться о закрытии драйвера ( хотя не совсем понятно почему, если мы передаем инстанс вебдрайвера) что не совсем хотелось бы делать. Хочется воспользоваться всеми преимуществами Selenide :slight_smile:

P.S. на всякий случай, тесты запускаются через jbehave-maven-plugin, goal: run-stories-as-embeddables


(Dez Dezsson) #2

А в чём проблема? Просто нужно в тирдаун добавить driver.close() и всё


(Dzmitry Ihnatsyeu) #3

Конечно можно, но хочется использовать все возможности Selenide: раз уж фреймворк берет на себя управление веб драйвером, то пусть делает это до конца.
А так по логике можно воспользоваться методом getDriver() и все, вообще не будет никаких проблем с Selenide, используй чистый веб драйвер


(Ilja Pavlovs) #4

А не поможет ли настройка -Dremote=<адрес грида>? Как описано тут - http://selenide.org/javadoc/2.10/com/codeborne/selenide/Configuration.html#remote


(asolntsev) #5

Привет!
Как сказал @iljapavlovs, самое простое - добавить опцию -Dremote=<адрес грида>.

Если почему-то хочется зафигачить больше разных настроек, можно ещё создать класс-фабрику для вебдрайвера, то есть реализовать класс WebdriverProvider. В нём нужно реализовать один-единственный метод WebDriver createDriver(DesiredCapabilities desiredCapabilities);

Тогда все возможности Selenide будут использованы по максимуму.


(Dzmitry Ihnatsyeu) #6

Спасибо за советы, вариант с фабрикой нравиться больше :slight_smile: