AutomationElement ScrollBar在ScrollVertical上引发访问冲突

时间:2014-10-03 07:48:33

标签: c# ui-automation microsoft-ui-automation

我正在尝试使用以下代码滚动第三方.net应用程序中的滚动条。当我在visual studio中运行代码时,它会抛出访问冲突。当我在visual studio之外执行程序集时,它会显示Unsupported Pattern ....任何想法都非常感激=]

if(child.Current.ClassName == "ScrollBar")
{
    PropertyCondition condition = new PropertyCondition(AutomationElement.AutomationIdProperty, child.Current.AutomationId);
    AutomationElement btnElement = child.FindFirst(TreeScope.Element, condition);
    ScrollPattern btnPattern = btnElement.GetCurrentPattern(ScrollPattern.Pattern) as ScrollPattern;
    btnPattern.ScrollVertical(ScrollAmount.LargeIncrement);
}

1 个答案:

答案 0 :(得分:2)

我几乎没有检查过:

  1. btnElement缺少空检查。
  2. 确保滚动条实际存在(除非窗格大小超出窗口大小,否则不显示滚动模式 - 如果设计的话)。
  3. 最后,不要直接将模式设置为ScrollPattern,而是从bthElement尝试GetAllSupportedPatterns,确保实际存在Scroll Pattern。