Эта функция:
public static string GetText(this AutomationElement element)
{
Thread.Sleep(300);
if (element.TryGetCurrentPattern(ValuePattern.Pattern, out object patternObj))
{
var valuePattern = (ValuePattern)patternObj;
return valuePattern.Current.Value;
}
else if (element.TryGetCurrentPattern(TextPattern.Pattern, out patternObj))
{
var textPattern = (TextPattern)patternObj;
return textPattern.DocumentRange.GetText(-1).TrimEnd('\r'); // often there is an extra '\r' hanging off the end.
}
else
{
return element.Current.Name;
}
}
работает просто отлично. первое / второе условия всегда заданы. Но по какой-то причине, когда я удаляю Thread.Sleep(300);
, оба TryGetCurrentPattern
не работают для одного и того же элемента.
Что может вызвать это?