Не могу определить, существует ли определенный UITestControl в моем веб-приложении
В настоящее время я пытаюсь помочь автоматизировать некоторые тесты пользовательского интерфейса с использованием C # для веб-приложения. Частая проблема, которую яЯ сталкиваюсь с тем, что это может быть чрезвычайно трудно определить, является лиUITestControl
объект существует на странице или нет. К сожалению, MicrosoftДокументация на их сайте MSDN, касающаяся кодированных тестов пользовательского интерфейса, практически не существует (см. здесь их страницу дляUITestControl
).
В основном то, что яя спрашиваю это:
Каков наилучший способ определить, является лиUITestControl
существует на странице или нет?Как работаетUITestControl.Exists
собственность работа?Что этоUITestControl.Find()
метод сделать?Как работаетUITestControl.TryFind()
метод работы?Как я'мы пытались справиться с этим:
Как я упоминал ранее, документация по всем этим классам и методам в основном пуста. Максимум, что вы можете получить, чтобы описать любой из методов и свойств, - это описание в 1 строку в Intellisense, поэтому ямы экспериментировали с перечисленными методами.
Сначала я попробовал проверить,UITestControl.Exists
собственность была правдой, но со временем и советовался с чужими Опыт работы с ним, стало очевидно, что он всегда возвращает истину, даже если браузер нет открыть. Поскольку вариант, который казался наиболее очевидным, не быля пытался использоватьUITestControl.Find()
метод, но так как он не принимает аргументов и ничего не возвращает, я не могне понять, что он сделал. Я пытался использоватьUITestControl.TryFind()
метод, и иногда это работало, но я обнаружил, что это только возвращало ложь, когда я не былт на правильной странице; в противном случае он всегда возвращал истину. Очевидно, я понятия не имел, как это работает, и не долженне использовать его в качестве теста.
Я понял, если бы я не могя не могу получить предоставленные методы, чтобы сделать свою работу, яЯ должен попытаться сделать свои собственные инструменты. Я недавно пытался использоватьMouse.Hover(UITestControl)
в блоке try / catch, чтобы определить, существует ли элемент управления следующим образом:
public bool DoesExist(UITestControl control){
if(control == null)
return false;
try{ Mouse.Hover(control); }
catch (UITestException)
{
return false;
}
return true;
}
Иногда это работает, но в определенных ситуациях кажется, что я получаю ложные срабатывания по причинам, которые я неТ понять. Я'я все еще летаю вслепую, а яу меня почти не осталось идей.
Я использую Visual Studio 2012 и Microsoft .NET Framework версии 4.5.50709.