2016-10-04 8 views
0

Я создал общий метод, который можно использовать для поиска записей в нашем AUT.Идентификация объекта не выполнена в кодированном пользовательском интерфейсе при выполнении метода в цикле

Теперь у меня есть сценарий, который мне нужно запустить мой код несколько раз. Поэтому я создал цикл и попытался выполнить. Первая итерация выполняется без каких-либо проблем, и страница закрывается. Повторно открыть страницу и все элементы управления загрузиться, но идентификация объекта не удалась во время второй итерации.

инициализации объекта HTMLEdit, как показано ниже:

HtmlEdit medit = new HtmlEdit(objSearchPage);  
medit.SearchProperties.Add("Name", "1$SearchText", PropertyExpressionOperator.Contains);  
medit.SearchProperties[HtmlEdit.PropertyNames.TagName] = "INPUT";  
medit.SearchProperties[HtmlEdit.PropertyNames.ControlType] = "Edit"; 

воспроизведение не удалось при попытке ввести текст в поле «MEDIT» во второй итерации. Первая итерация прошла успешно: medit.Text = searchItem;

+0

Возникает ли проблема без вашего кода? Я спрашиваю, потому что вопросы о коде требуют, чтобы вы опубликовали свой код. Если речь идет о кодированном пользовательском интерфейсе, и ваш код не имеет значения, тогда сделайте это понятным. –

+0

инициализация объекта HtmlEdit, как показано ниже, HtmlEdit medit = new HtmlEdit (objSearchPage); medit.SearchProperties.Add («Имя», «1 $ SearchText», PropertyExpressionOperator.Contains); medit.SearchProperties [HtmlEdit.PropertyNames.TagName] = "INPUT"; medit.SearchProperties [HtmlEdit.PropertyNames.ControlType] = "Изменить"; Воспроизведение завершилось неудачно при попытке ввести текст в поле «медитировать» во время второй итерации. Первая итерация - успех - medit.Text = searchItem; – SSNair

+0

Возможный дубликат ["control.Exists" внутри цикла работает в первый раз, а не во второй раз в кодировке ui] (http://stackoverflow.com/questions/27526163/control-exists-within-a-loop-works -для-первый раз-и-не-для второго времени-в-с) – AdrianHHH

ответ

0

Если окно браузера открывается и закрывается во время итерации, вам нужно включить код инициализации в цикле или использовать параметр AlwaysSearch.

foreach(var thing in thingsToDo) 
{ 
    HtmlEdit medit = new HtmlEdit(objSearchPage);  
    medit.SearchProperties.Add("Name", "1$SearchText", PropertyExpressionOperator.Contains);  
    medit.SearchProperties[HtmlEdit.PropertyNames.TagName] = "INPUT";  
    medit.SearchProperties[HtmlEdit.PropertyNames.ControlType] = "Edit"; 

    // use medit now and it will work 
} 

или

HtmlEdit medit = new HtmlEdit(objSearchPage);  
medit.SearchProperties.Add("Name", "1$SearchText", PropertyExpressionOperator.Contains);  
medit.SearchProperties[HtmlEdit.PropertyNames.TagName] = "INPUT";  
medit.SearchProperties[HtmlEdit.PropertyNames.ControlType] = "Edit"; 

// I'm not sure this will work because the browser window is different 
medit.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch); 
0

@MPavlak близка к деньгам. Я думаю, что мы, возможно, забываем, вам также придется повторно инициализировать свой родительский элемент управления (objSearchPage). Убедитесь, что он существует и найден до поиска медитации.

foreach(var thing in thingsToDo) 
{ 
    var objSearchPage = new UITestControl(); //you can also just reinitialize here if it's been previously declared. 
    objSearchPage.SearchProperties.Add("yourPropertyHere"); 

    HtmlEdit medit = new HtmlEdit(objSearchPage);  
    medit.SearchProperties.Add("Name", "1$SearchText", PropertyExpressionOperator.Contains);  
    medit.SearchProperties[HtmlEdit.PropertyNames.TagName] = "INPUT";  
    medit.SearchProperties[HtmlEdit.PropertyNames.ControlType] = "Edit"; 
} 

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

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