Size: a a a

Selenide на русском

2020 April 30

ДЛ

Дмитрий Лукьяненко... in Selenide на русском
Stanislav
Ага, нашел ) Спасибо!
Intellij IDEA Ctrl + Shift + F  Искать по проекту
источник

S

Stanislav in Selenide на русском
Дмитрий Лукьяненко
Intellij IDEA Ctrl + Shift + F  Искать по проекту
Спасибо, нашел уже
источник

S

Stanislav in Selenide на русском
Коллеги, еще вопрос - как загрузить файл в селенойде? В примере указано использование драйвера - https://aerokube.com/selenoid/latest/#_uploading_files_to_browser
источник

S

Stanislav in Selenide на русском
вроде бы как-то можно достать селениумовский webdriver
источник

S

Stanislav in Selenide на русском
До селенида использовал RemoteWebDriver
источник

DG

Denis G in Selenide на русском
Stanislav
Коллеги, еще вопрос - как загрузить файл в селенойде? В примере указано использование драйвера - https://aerokube.com/selenoid/latest/#_uploading_files_to_browser
А что происходит, если использовать метод download()?
источник

SC

Sergey Chevychelov in Selenide на русском
WebDriverRunner.getWebDriver()
?
источник

S

Stanislav in Selenide на русском
Sergey Chevychelov
WebDriverRunner.getWebDriver()
?
Ага, оно. Спасибо.
источник
2020 May 01

PN

Pavel Nazimok in Selenide на русском
Посмотрел презентацию "Selenide для профи". Подход с контейнерами в целом понравился. Но тогда получается, что при описании каждого поля мы должны постоянно повторяться и писать container.$(...). Было бы удобнее, если бы, например, над классом можно было поставить аннотацию с локатором к этому container, а все остальные поля его подхватывали по умолчанию. То есть любой локатор, написанный вы этом классе, знал бы сам о своём корневом локаторе. Тогда у нас не было бы постоянного обращения к container и код стал бы более concise.
источник

СР

Саша Росолько... in Selenide на русском
не все элементы класса обязательно от контейнера должны искаться
источник

PN

Pavel Nazimok in Selenide на русском
А можно пример?
источник

СР

Саша Росолько... in Selenide на русском
тот же пример, что и со слайда, но, например, еще 4 элемент, например, ссылка\кнопка для перехода на другую страницу
которая не лежит в основном контейнере, но присутствует на странице
источник

СР

Саша Росолько... in Selenide на русском
и все, такой подход не будет уже работать
источник

PN

Pavel Nazimok in Selenide на русском
Саша Росолько
тот же пример, что и со слайда, но, например, еще 4 элемент, например, ссылка\кнопка для перехода на другую страницу
которая не лежит в основном контейнере, но присутствует на странице
Но ведь тогда эта кнопка является частью другой страницы/контейнера?
источник

СР

Саша Росолько... in Selenide на русском
но, в рамках одной страницы вы можете описать несколько контейнеров на одном уровне, рядом
источник

СР

Саша Росолько... in Selenide на русском
а в предложенном подходе придется каждый контейнер отдельно выделять в класс и не факт, что уже получится меньше кода
источник

SR

Stas Rusakov in Selenide на русском
Могу добавить что элемент контейнера ещё бывает удобно передавать как параметр, например, конструктора (для случая списка сложных сущностей)
источник

SR

Stas Rusakov in Selenide на русском
С аннотацией такой подход разумеется отваливается
источник

YK

Yasha Kramarenko in Selenide на русском
Pavel Nazimok
Посмотрел презентацию "Selenide для профи". Подход с контейнерами в целом понравился. Но тогда получается, что при описании каждого поля мы должны постоянно повторяться и писать container.$(...). Было бы удобнее, если бы, например, над классом можно было поставить аннотацию с локатором к этому container, а все остальные поля его подхватывали по умолчанию. То есть любой локатор, написанный вы этом классе, знал бы сам о своём корневом локаторе. Тогда у нас не было бы постоянного обращения к container и код стал бы более concise.
не всегда консайс это хорошо
ты также можешь подобрать более короткое имя вместо container
например self

в любом случае - на самом деле важно отличать обращение к контейнеру элемента от обращеня к элементам за границами этого контейнера
иногда компонент с точки зрения пользователя выглядитт как один конттейнер
но на юае состоит из разного рода кусков не связанных друг с другом родительскими связями. Так что все ок. Это класический пример композиции.

Нужно понимать что лаконичность - это хорошо, но читабельность и понятность - важнее в контексте поддержки. Плюс универсальность и консистеннтость тоже играют роль
источник

YK

Yasha Kramarenko in Selenide на русском
вообще это стандартная тема - композиция называется.
и у меня вдруг что есть целая серия видео на эту же тему
https://www.youtube.com/watch?v=52qYPoZOaqE&list=PLWKsep_LKQYq_QRa4ROEjLse7jDbiSl-H
источник