我正在创建简单的自动化应用程序,我使用的是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获得实际值?