Перейти к содержимому

Фотография

PageObject - добавить аннотацию описание элемента и распечатывать?

Selenium PageObject

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 testerpro

testerpro

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 10 мая 2020 - 05:57

Приветствую.
Использую appium и хотел бы добавит в PageObject переменной елкмента аннотацию что то типа @Description для последующего логирования какой элемент сейчас вызвался.
В pagefactory когда создаётся класс я могу распечать все елементы но когда происходит вызов элемента то уже не могу найти как распечать.
Есть вариант создания своего класса элемента и туда уже можно добавит все что угодно но это сложно для меня.
Есть библиотека от Яндекса, там сделано под веб тестирование, HtmlElement кастомной класс веб элемента в котором есть и аннотация для описаний элемента. Но у меня мобильное тестирование и тут Апиум декоратор.

Кто бы мне помог чтоб было вот так красиво?)

@FindBy(id = "username")
@Description("Username field")
WebElement username;
  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 10 мая 2020 - 13:05

Насколько я понял, вам надо сделать класс для Description, наподобие https://github.com/S...nnotations.java (либо добавить в него Description и собрать свой селениум)

И ещё сделать интерфейс для самого Description, наподобие https://github.com/S...ort/FindBy.java


  • 0

#3 testerpro

testerpro

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 10 мая 2020 - 18:28

Насколько я понял, вам надо сделать класс для Description, наподобие ...

 

 

Я посмотрю спасибо.
Вообще первое что приходит на ум это создать свой кастомный WebElement у которого будет поле description, и при создании PageFactory-ром проси для элемента ему в конструктор будет так же передаваться значение моей анотации @Description таким обзаром у моего элемента будет метод getDescription() который и будет возвращать поле description .

 

Проблема что нужно перелопатить много классов чтоб все заработало.
 

Вот тут есть готовое решение от Яндекса для Веба, а мне бы для Appium. 

https://github.com/y...ls/htmlelements

 

 


  • 0

#4 testerpro

testerpro

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 11 мая 2020 - 16:57

Таки вышло найти решение.
Чутка изменил метод proxyFields в классе PageFactory чтоб сохраняло мне ссылку элемента и его field.
дальше создаю метод передаю ему эелемент ищу его в сохраненных и по нему вычисляю Field в котором есть моя аннотация и другая полезная инфа. 

 

 

 

Прикрепленные файлы


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных