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