Size: a a a

Selenide на русском

2020 June 10

ON

Olzhas Nuralinov in Selenide на русском
Andrei Solntsev
Давайте разбираться. Ща ещё вдвое сократим.
возможно, я просто не понимаю, как "правильно" использовать PageObject в Selenide без аннотаций FindBy
источник

AV

Alexei Vinogradov in Selenide на русском
public class Avatars {
        SelenideElement getAvatarName(int i){return $$("xpath").get(i).$("h3");
        SelenideElement getAvatarPicture(int i){return $$("xpath").get(i).$("img");        
}

@Slf4j
public class SomeTest {
   @Test
   public void someTest() {
       Selenide.open("/");
       new Avatars().getAvatarName(0).shouldHaveText("Петюня");
   }
}
источник

AV

Alexei Vinogradov in Selenide на русском
на 1 класс меньше, нет page(), @findby
источник

ON

Olzhas Nuralinov in Selenide на русском
Alexei Vinogradov
public class Avatars {
        SelenideElement getAvatarName(int i){return $$("xpath").get(i).$("h3");
        SelenideElement getAvatarPicture(int i){return $$("xpath").get(i).$("img");        
}

@Slf4j
public class SomeTest {
   @Test
   public void someTest() {
       Selenide.open("/");
       new Avatars().getAvatarName(0).shouldHaveText("Петюня");
   }
}
типа
public class SomePage {
   ElementsCollection getAvatars() {
       return $$(byXpath("xpath");
   }

   SelenideElement getAvatarName(int i) {
       return getAvatars().get(i).$("h3");
   }

   SelenideElement getAvatarPicture(int i){
       return getAvatars().get(i).$("img");
   }
}
источник

AV

Alexei Vinogradov in Selenide на русском
Olzhas Nuralinov
типа
public class SomePage {
   ElementsCollection getAvatars() {
       return $$(byXpath("xpath");
   }

   SelenideElement getAvatarName(int i) {
       return getAvatars().get(i).$("h3");
   }

   SelenideElement getAvatarPicture(int i){
       return getAvatars().get(i).$("img");
   }
}
можно и так
источник

ON

Olzhas Nuralinov in Selenide на русском
Alexei Vinogradov
можно и так
но мой глаз требует вынести селекторы в поля )
источник

AV

Alexei Vinogradov in Selenide на русском
верхний можно вынести, два других - нет.
Это довольно случай, обычно и в поля всё можно вынести так же
источник

ON

Olzhas Nuralinov in Selenide на русском
мне больше по душе в FindBy все спрятать, а гет методы пусть ломбок сгенерирует
источник

AV

Alexei Vinogradov in Selenide на русском
обычно будет просто getAvatars().shouldHave(size(12)).shouldHave(texts("первый","второй"...)))
источник

AS

Andrei Solntsev in Selenide на русском
"по душе" - не аргумент. Нужно меряться аргументами типа "где меньше кода" или "где меньше магии". Или "где больше возможностей ошибиться".
источник

AV

Alexei Vinogradov in Selenide на русском
можно и не генерироваться методы get, а делать
public ElementCollections avatars=$$("xpath");

new MyPage().avatars.shouldHave(size());

в таких случая геттеры и не нужны
источник

ON

Olzhas Nuralinov in Selenide на русском
ну окай =)
источник

AV

Alexei Vinogradov in Selenide на русском
непонятно какую роль играют геттеры, а Ломбок, ну это дополнительная зависимость от лишней библиотеки.

В принципе "по душе" - это аргумент, но с ним невозможно спорить. Можно только тоже сказать "А, ну окай" 🙂
источник

ON

Olzhas Nuralinov in Selenide на русском
убедили =)
источник

A

Andrey in Selenide на русском
Andrei Solntsev
"по душе" - не аргумент. Нужно меряться аргументами типа "где меньше кода" или "где меньше магии". Или "где больше возможностей ошибиться".
С учётом того, что всё относительно, а нужно ли мериться чем-то в коде взрослым мужчинам?)
источник

AS

Andrei Solntsev in Selenide на русском
Ну, "меряться" - это я в шутку
источник

ИМ

Илья Мороз in Selenide на русском
кто нибудь пробоавл использовать библиотеку sbtqa.pagefactory совместно с Selenide?
уже который день бьюсь что то не получается.
основная цель обращаться к элементам по аннотации @ElementTitle("Кнопка")
если у кого то есть проект на гитхабе , пожалуйста дайте посмотреть
источник

AV

Alexei Vinogradov in Selenide на русском
Переслано от Yuriy Artamonov
Это мой личный вам совет, если хотите использовать последние свежие версии Java, IDE и других тулов, откажитесь от Lombok. В софте меньше зависимостей - лучше
источник

AV

Alexei Vinogradov in Selenide на русском
Так, к слову 🙂
источник

AS

Andrei Solntsev in Selenide на русском
Илья Мороз
кто нибудь пробоавл использовать библиотеку sbtqa.pagefactory совместно с Selenide?
уже который день бьюсь что то не получается.
основная цель обращаться к элементам по аннотации @ElementTitle("Кнопка")
если у кого то есть проект на гитхабе , пожалуйста дайте посмотреть
Какую проблемы ты хочешь этим решить? Зачем нужно "обращаться по аннотации"?
источник