Динамически обращаться к элементам репозитория Ranorex

У меня есть следующая проблема.

Я хотел бы динамически ссылаться на некоторые элементы репозитория.

Например, у меня есть кнопка. Допустим, это кнопка удаления.

Его имя построено следующим образом: предположим, я хочу удалить элемент с именем Joe. В этом случае кнопка удаления вызывается в Spy:

Joe.DeleteButton

В случае Билла это называется

Bill.DeleteButton

Если я хочу реализовать щелчок по нему, я бы хотел использовать такой оператор:

repo.Joe.DeleteButton.Cklick();
repo.Bill.DeleteButton.Cklick();

Но имя определяется во время выполнения.

Могу ли я установить, создать этот оператор репо...  динамически или есть способ динамически ссылаться на него (во время выполнения)?


person Joe    schedule 31.10.2016    source источник
comment
Это похоже на проблему XY. У вас есть проблема, которую вы хотите решить, представив Джо и Билла как динамические объекты. Но в чем твоя проблема? Может быть, это можно решить еще более элегантным способом.   -  person Thomas Weller    schedule 10.11.2016


Ответы (2)


Если Джо и Билл имеют одинаковый тип и находятся в каком-то контейнере репо, вы можете найти их так:

Ranorex.Adapter namesContainer = repo.NamesContainer.Self;
List<*Names_Type*> namesList = namesContainer.FindChildren<*Names_Type*>();

после этого каждое имя можно щелкнуть таким образом

namesList[1].DeleteButton.Click();

person bkrk    schedule 20.12.2016

Чтобы дать полный ответ, мне нужно знать XPath обеих кнопок удаления.

Например, если Джо и Билл оба являются формами и оба содержат кнопку удаления, синтаксис XPath элементов репозитория может быть примерно таким:

Кнопка "Удалить" Джо = /form[@title='Joe']/button[@accessiblename='Delete']

Кнопка удаления счета = /form[@title='Bill']/button[@accessiblename='Delete']

Если вы не хотите нажимать кнопку удаления, независимо от имени формы, просто измените синтаксис XPath на это:

Любая кнопка «Удалить» = /form/button[@accessiblename='Delete']

Вы можете добавить @processname, чтобы убедиться, что это кнопка удаления вашего приложения, или использовать что-то еще уникальное для вашего тестируемого приложения.

В вашем конкретном выпуске Ranorex Spy — ваш лучший друг.

Если вы не хотите больше знать о XPath, я рекомендую посмотреть скринкасты Ranorex (действительно стоит вашего времени): Кадры экрана Ranorex

Также ценная информация о XPath содержится в следующей статье: Советы и рекомендации Ranorex XPath

Надеюсь это поможет!

person Sup3rHugh    schedule 01.11.2016