Я записал тест с закодированным пользовательским интерфейсом, используя построитель тестов с закодированным пользовательским интерфейсом VS2015.на основе моей записи для моего метода тестирования создается следующая функция:
public void RecordedMethod1()
{
#region Variable Declarations
WpfText uIItemText = this.UIMainWindowWindow.UIAddNewRowControlCustom.UIGridCellCustom.UIItemText;
WpfEdit uIItemEdit = this.UIMainWindowWindow.UIAddNewRowControlCustom.UIGridCellCustom.UIItemEdit;
WpfText uIItemText1 = this.UIMainWindowWindow.UIAddNewRowControlCustom.UIGridCellCustom1.UIItemText;
#endregion
// Double-Click label
Mouse.DoubleClick(uIItemText, new Point(73, 3));
//// Failed in the following line and the test is not running after that.
// Type 'aaa' in text box
uIItemEdit.Text = this.RecordedMethod1Params.UIItemEditText;
// Double-Click label
Mouse.DoubleClick(uIItemText1, new Point(79, 10));
// Type 'bbb' in text box
uIItemEdit.Text = this.RecordedMethod1Params.UIItemEditText1;
// Type '{Enter}' in text box
Keyboard.SendKeys(uIItemEdit, this.RecordedMethod1Params.UIItemEditSendKeys, ModifierKeys.None);
}
После достижения строки, чтобы установить записанное значение в uiEditItem.Text, тестовый пример не выполняется в дальнейшем, если произошел сбой в тестеcase.
Я нашел решение для Google и нашел тот, который говорит, что вам нужно переписать контрольные примеры с помощью Kebord.SendKeys вместо прямой установки значения в свойство Text элемента EditItem.
Таким образом, я изменил свой код в строке следующим образом, и он работает.
// Type 'aaa' in text box
//uIItemEdit.Text = this.RecordedMethod1Params.UIItemEditText;
// Replaced the above line with the SenKeys
Keyboard.SendKeys(this.RecordedMethod1Params.UIItemEditText);
Это единственное решение этой проблемы (Мануллай переписал методы тестирования с помощью метода SendKeysвместо непосредственного присвоения значения свойству uiEditItem.Text)?Если нет, пожалуйста, предоставьте возможное решение для этого.