我试图在GridView的特定行中找到一个AutomationElement(因此有许多相同的元素)。我正在迭代行中的元素,我想使用matcher来查看某个特定元素是否符合我传递给它的条件。我从简单的属性条件开始。
这是我的测试:
[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.pane,但奇怪的是,propertyCondition.value是“50033”。
关于如何在findfirst/findall之外测试属性条件有什么想法吗?
(我的解决方法是创建我自己的条件类型并测试它,但是我想检查一下我是否误解了什么/做了什么愚蠢的事情。)