2016-09-13 16 views
2

Кто-нибудь знает, как установить значение в TextBox после включения TextBox во время выполнения с использованием UI Automation и .Net?TextBox выбрасывает неподдерживаемый шаблон в шаблоне значений

Для получения дополнительной информации: сначала при загрузке приложения TextBox был отключен. После переключения флажка с помощью Automation, TextBox был включен. Но с помощью автоматизации он недоступен. Я попытался следующим образом:

PropertyCondition parentProcCond = new PropertyCondition(AutomationElement.ProcessIdProperty, processes[0].Id); 
Condition chkCondition = new AndCondition(
          new PropertyCondition(AutomationElement.IsEnabledProperty, true), 
          new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.CheckBox), 
          new PropertyCondition(AutomationElement.NameProperty, chkName)); 
//Find Elements 
var parentElement = AutomationElement.RootElement.FindFirst(TreeScope.Children, parentProcCond); 

var chkUseMyAccountElement = parentElement.FindFirst(TreeScope.Descendants, chkCondition); 
TogglePattern pattern = chkUseMyAccountElement.GetCurrentPattern(TogglePattern.Pattern) as TogglePattern; 
ToggleState state = pattern.Current.ToggleState; 
if (state == ToggleState.On) 
{ 
    pattern.Toggle(); 
} 

Condition txtDomainCondition = new AndCondition(
          new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Text), 
          new PropertyCondition(AutomationElement.NameProperty, txtDomain) 
          ); 

var txtConditionElement = parentElement.FindFirst(TreeScope.Descendants, txtDomainCondition); 
ValuePattern valuetxtDomain = txtConditionElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern; 
valuetxtDomain.SetValue("US"); 

Он бросает неподдерживаемый шаблон в ValuePattern линии.

ответ

2

Я нашел ответ.

Вместо типа управления как текст, измененный как тип управления как Edit. Это работает.

Condition txtDomainCondition = new AndCondition(
         new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit), 
         new PropertyCondition(AutomationElement.NameProperty, txtDomain) 
         ); 

 Смежные вопросы

  • Нет связанных вопросов^_^