如何读取ComboBox Automation Element的Value.Value属性

时间:2017-07-26 13:49:42

标签: c# automation ui-automation

我正在创建简单的自动化应用程序,我正在使用Windows 10。 我编写的函数将从AutomationElement返回comboBox的实际文本。 请查看屏幕截图https://www.screencast.com/t/iHATwpvl390k

public static string GetText(AutomationElement element)
{
    object patternProvider;
    if (element.TryGetCurrentPattern(TextPattern.Pattern, out patternProvider))
    {
        TextPattern txtPattern = patternProvider as TextPattern;
        return txtPattern.DocumentRange.GetText(-1);
    }
    if (element.TryGetCurrentPattern(ValuePattern.Pattern, out patternProvider))
    {
        ValuePattern valuePatternProvider = patternProvider as ValuePattern;
        return valuePatternProvider.Current.Value;
    }
    Logger.Log("Could not retrieve text" + element.Current.Name);
    return string.Empty;
}

此函数总是返回空字符串。在Inspect工具中,ComboBox IsValuePatternAvailableProperty为true。 请查看屏幕截图https://www.screencast.com/t/MYZ7gYwCX12S

我无法访问Automation Element的Value.Value属性。

为什么即使IsValuePatternAvailableProperty为true,我也无法从ValuePattern获取实际值?

0 个答案:

没有答案