AE_ComboBox = uia.GetElementByControlTypeAndAutomationId(globalSettings, ControlType.ComboBox, "1");
AE_TargetValue = uia.GetElement(AE_ComboBox, value, true);
SelectionItemPattern SIP = AE_TargetValue.GetCurrentPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;
SIP.Select();
Thread.Sleep(2000);
SIP.Current.IsSelected
Этот код выдает исключение в последней строке.
Целевой элемент соответствует пользовательскому интерфейсу, который больше недоступен (например, родительское окно закрылось).
в MS.Internal.AutomationProxies.Misc.ThrowWin32ExceptionsIfError(Int32 errorCode)
в MS.Internal.AutomationProxies.Misc .ProxySendMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
в MS.Internal.AutomationProxies.WindowsListBox.ListboxItem.System.Windows.Automation.Provider.ISelectionItemProvider.get_IsSelected()
Итак, в чем тут может быть дело?
Кроме того, еще вопрос, что означает «текущий» в SelectionItemPattern
? (Я уверен, что это не означает текущий выбранный элемент.)