Как я могу сказать, соответствует ли элемент PropertyCondition в Microsoft UI Automation?

Я пытаюсь найти 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?

(Мое обходное решение должно создать мой собственный тип условия и тест, что вместо этого, но я хотел бы проверить, что я не неправильно понимаю что-то / выполнение чего-то глупого.)

5
задан Lunivore 25 July 2010 в 09:39
поделиться