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