Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[US-7-6] Больше опций для выбора типа локатора при его редактировании #1285

Closed
AlexeyGirin opened this issue Jun 5, 2023 · 1 comment · Fixed by #1573 or #1578
Assignees
Labels
ArtemFeedback tasks related to user's feedback enhancement New feature or request ready for dev task is estimated, described and ready for dev
Milestone

Comments

@AlexeyGirin
Copy link
Contributor

AlexeyGirin commented Jun 5, 2023

связана с #1180

Добавить в список атрибуты ID, Name, ClassName и *Data* (который присутствуют только если он есть у элемента, например data-ved="0ahUKEwiR-e6zpbj-AhX4T6QEHX-9Br0Q19QECAo")
Таким образом - при открытии окна редактирования локатора в выпадушке Locator должен быть список:

  • CSS selector
  • className
  • data-атрибуты
  • id
  • linkText
  • name
  • tagName
  • xPath

При выборе того или иного - должны получаться следующие @UI аннотации:

xPath - всё по старому (да, это так: @UI("//*[contains(text(), 'Search help')]") - Алексей)
CSS selector - всё по старому (да, это так: @UI("#Search_help_id") - Алексей)
id="AlaAlaAla": @UI("#AlaAlaAla")
name="BlaBlaBla": @UI("[name=‘BlaBlaBla‘]")
tagName="button": @UI("button")
className="ClaClaCla": @UI(".ClaClaCla")
linkText = "Home": @UI("Home")
data-ved="0ahUKEwCAo":  @UI("[data-ved=‘0ahUKEwCAo‘]")

Для @FindBy аннотаций это будет:

xPath - всё по старому (да, это так: @FindBy(xpath = "//*[contains(text(), 'Search help')]") - Алексей)
CSS selector - всё по старому (да, это так: @FindBy(css = "#Search_help_id") - Алексей)
id="AlaAlaAla": @FindBy(id = "AlaAlaAla")
name="BlaBlaBla": @FindBy(name = "BlaBlaBla")
tagName="button": @FindBy(tagName = "button")
className="ClaClaCla": @FindBy(className = "ClaClaCla")
linkText = "Home"
data-ved="0ahUKEwiR":  @FindBy(css = "[data-ved='0ahUKEwiR']")

User Feedback:
Артём: локаторы слишком длинные (>20-30 symbols). Оптимальным считается блее короткий.


Про уникальность

  • Проверяем всех на уникальность (включая ID, CSS and xPath)
  • Если xpath или id, например, неуникальны по итогам проверки, то мы перекидываем его в нижнюю группу

Уникальность локатора мы можем гарантировать только для CSS и xPath (это гарантирует алгоритм который мы используем) и для id (хотя во всех книжках говорится что гарантии нет, но как правило - это не нарушается).
А вот для остальных локаторов (если они вообще применимы т.к. не гарантировано что они есть - например - атрибута name вообще может не быть) - уникальность не гарантируется и тот же name - может быть совсем не уникальным.


Дизайн

Figma

Минифлоу:

  1. Открываем Edit (на фоне запускается проверка на уникальность для списка типов локатора)
  2. Меняем тип локатора
  3. Тип аннотация остаётся
  4. Меняется текст локатора
  • Внутри групп уникальные/неуникальные сортируем по A-Z
  • Для некоторых атрибутов (data или name) может не быть данных, тогда мы их дизейблим и показываем тултип с текстом "Disabled because no data"
  • Предпоказанный текст локатора в уже выбранный Select не берём
  • Стиль текста в дивайдере поменял на поменьше footnote/description 12/20

image

если текст большой, то элипсируем через три точки
image

Алексей: Надо обратить внимание, чтобы scroll bar был виден и по умолчанию показывался. Нужно видеть что там больше 2-3 типов локаторов в списке Если возможно, на имплементации сделать дропдаун как можно больше (но с отступом от края, конечно же)
image

@AlexeyGirin AlexeyGirin added enhancement New feature or request Design needed If design for the task isn't prepared yet labels Jun 5, 2023
@savinovava savinovava added ArtemFeedback tasks related to user's feedback release 3.14 labels Jun 23, 2023
@SemyonKuznetsov SemyonKuznetsov self-assigned this Jun 29, 2023
@SemyonKuznetsov SemyonKuznetsov removed the Design needed If design for the task isn't prepared yet label Jul 5, 2023
@SemyonKuznetsov SemyonKuznetsov removed their assignment Jul 5, 2023
@savinovava savinovava changed the title Больше опций для выбора типа локатора при его редактировании [US-7-6] Больше опций для выбора типа локатора при его редактировании Jul 31, 2023
@savinovava savinovava added the ready for dev task is estimated, described and ready for dev label Aug 8, 2023
@savinovava savinovava added this to the Release 3.15 milestone Aug 15, 2023
@Iogsotot Iogsotot self-assigned this Oct 6, 2023
@Iogsotot
Copy link
Contributor

Iogsotot commented Nov 29, 2023

#1573 #1578
3.14.28

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ArtemFeedback tasks related to user's feedback enhancement New feature or request ready for dev task is estimated, described and ready for dev
Projects
Status: M (5)
Status: Done
5 participants