CodedUi: Как искать свойство окна, когда его название постоянно меняется? - PullRequest
1 голос
/ 11 января 2012

Я пытаюсь автоматизировать щелчок на элементе управления в окне, и в зависимости от того, что выбрано в окне, плитка окна меняется. Как-то иногда это «abc», второй раз это будет «123».нет общей строки в заголовке окна для двух сценариев

Когда я записал закодированный тест пользовательского интерфейса, он принял название как «abc».Теперь я хочу как-то настроить тест, чтобы работал любой заголовок.

Как я могу это сделать?

Любая помощь будет отличной.

Ответы [ 3 ]

4 голосов
/ 13 января 2012

Вы можете изменить searchProperties во время выполнения, например:

myUITestControl.SearchProperties.Remove (UITestControl.PropertyNames.Name); myUITestControl.SearchProperties.Add (UITestControl.PropertyNames.Name, "123");

Это должно быть сделано перед первым поиском элемента управления. Так что, возможно, в ctor вашего тест-класса. (в качестве альтернативы вы также можете добавить «AlwaysSearch» в SearchConfigurtation UITestControl)

Поздравления Johannes

2 голосов
/ 18 января 2012

На самом деле не так много встроенных «хороших» вариантов с тестами CodedUI. Написание дюжины строк изменений свойств поиска для каждого тестового случая - главная проблема, не говоря уже о том, что она подвержена ошибкам (забудьте изменить свойство, и тест прервется или замедлится для сканирования). Нет способа использовать переменную в свойствах поиска, которые установлены в файле UIMap.designer, или, по крайней мере, я не смог найти способ, которым можно было бы придерживаться после регенерации файла. Перемещение всего из файла конструктора также не является хорошим вариантом, так как элементы управления, кажется, не перемещаются с методами, к которым они прикреплены.

Когда я столкнулся с проблемой, я в конечном итоге использовал отражение в UIMap и выполнял гигантский поиск во время выполнения и замену в свойствах поиска для каждого элемента управления. Не идеальное решение, но оно работает и спасло меня от написания множества отдельных изменений свойств поиска.

1 голос
/ 14 августа 2014

вы можете использовать объявленную переменную

variable = "Value"; (возможно даже с массивами) myUITestControl.SearchProperties [UITestControl.PropertyNames.Name] = Переменная; myUITestControl.SearchProperties [UITestControl.PropertyNames.Name] = Переменная [1];

или, если вы знаете часть имени окна, вы можете использовать:

myUITestControl.SearchProperties.Add ("Имя", "Значение", propertyExpressionOperator.Contains);

или myUITestControl.SearchProperties.Add (new PropertyExpression (WinWindow.PropertyNames.Name, "Value", PropertyExpressionOperator.Contains));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...