Я пытаюсь найти AutomationElement в конкретной строке GridView (таким образом, существует много идентичных элементов). Я выполняю итерации по элементам в строке, и я хотел бы использовать matcher, чтобы видеть, соответствует ли конкретный элемент Условию, я являюсь передающим к нему. Я запускаю с простого PropertyConditions.
Вот мой тест:
[TestFixture]
public class ConditionMatcherBehaviour
{
[Test]
public void ShouldMatchAPropertyConditionByItsValue()
{
var conditionMatcher = new ConditionMatcher();
var condition = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Pane);
Assert.True(conditionMatcher.Matches(AutomationElement.RootElement, condition));
}
}
И вот код:
public class ConditionMatcher : IMatchConditions
{
public bool Matches(AutomationElement element, Condition condition)
{
var propertyCondition = (PropertyCondition) condition;
return propertyCondition.Value.Equals(element.GetCurrentPropertyValue(propertyCondition.Property));
}
}
К сожалению, тестовые сбои. ControlType корневого элемента (рабочий стол) является действительно ControlType. Область, но причудливо PropertyCondition. Значение "50033".
Какие-либо идеи относительно того, как я могу протестировать PropertyCondition за пределами FindFirst / FindAll?
(Мое обходное решение должно создать мой собственный тип условия и тест, что вместо этого, но я хотел бы проверить, что я не неправильно понимаю что-то / выполнение чего-то глупого.)