Столкнулся со следующей ситуаций: пишу автотест для веба. Там следующая ситуация: 1. Есть основная форма со списком клиентов. 2. В этом списке выбираем запись и жмем кнопку “Открыть”. 3. Форма с данными по выбранной записи открывается как бы во всплывающем окне.
При попытке обойти рекордером все поля формы с данными – он определяет поля.
Но при последующем воспроизведении теста – он ищет эти поля не в форме с данными, а в основной форме.
Например, #region Variable Declarations WinEdit uIФамилияEdit = this.UIAKSiклиникаMozillaFiWindow.UIФамилияRow.UIФамилияEdit; #endregion
// Щелчок “Фамилия:” text box Mouse.Click(uIФамилияEdit, new Point(25, 7)); Keyboard.SendKeys(uIФамилияEdit, “Дурья”, ModifierKeys.None);
Поле не находится и тест валится в Exception: Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnBlockedControlException: Дополнительные сведения Элемент управления блокируется другим элементом управления. Переведите блокированное управление в видимый режим и повторите действие.: TechnologyName: “MSAA” Name: “AKSi-клиника – Mozilla Firefox” ControlType: “Application” —> System.Runtime.InteropServices.COMException: Исключение из HRESULT: 0xF004F003.
Но тут возможно проблемы со скоростью нахождения, кроме того может неправильный индекс, может найдет больше чем 2 элемента, может меньше и т.д. Как уже говорил, без страницы перед глазами тяжело говорить.
Вы записали рекордером тест, который работает с фамилией на попапе, и потом при воспроизводстве сгенерированного теста (без изменений) он использует неправильный элемент - я правильно понял? У меня такие случаи по пальцам одной руки можно пересчитать.