Перейти к содержимому

Фотография

Не нажимается кнопка


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Alex88

Alex88

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Алексеев

Отправлено 27 октября 2010 - 09:24

При тестировании приложения на С++ кнопка часто (80%) не нажимается и вылетает ошибка в лог что объекта нет, т.е. TC ее не видит.
Ставил задержки, все равно одно и тоже.
Если запускать в режиме отладки то кнопка нажимается (в 80% случаев). Если запускать отдельно функцию, где есть вызов нажатия кнопки, то результат тот же.
Если же запускать проект полностью то вылетаю.
TC 7 win xp x32
Код будет чуть попозже. Спасибо

Вот сама кнопка

wnd=путь....
var BtnEdit=FindObject("ControlId","10352",Wnd);
BtnEdit.Click();
Функция FindObject
function FindObject (Prop,Value,WndO)
{
  var PropArray, ValuesArray, ConvertedPropArray, ConvertedValuesArray, p, w;//значения для поиска 
  PropArray = new Array(Prop);
  ValuesArray = new Array(Value);      
  //Convert arrays
  ConvertedPropArray = ConvertJScriptArray(PropArray);
  ConvertedValuesArray = ConvertJScriptArray(ValuesArray); 
  //FndBtn

  var btn=WndO.Find(ConvertedPropArray,ConvertedValuesArray); 
  if(btn.Exists)
    {
      Log.Message("Нашли объект: "+btn.FullName);
      return btn;
    }
   else
    {
      Log.Error("Объект со значениями"+Prop+":"+Value+" не найдено");
    }   
}

  • 0

#2 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 27 октября 2010 - 09:39

Значение свойства кнопки "ControlId", скорее всего, не является уникальным, т.е. меняется от запуска к запуску.
Поэтому для поиска кнопки надо использовать другое свойство: например "Caption" или "Index".
  • 0

#3 Alex88

Alex88

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Алексеев

Отправлено 27 октября 2010 - 09:41

Если ТС "не видит" кнопку, то для начала надо добиться, чтобы кнопка была "видна". А потом уже "нажиманием" заниматься.

В том то и дело что с кнопкой все впорядке. Я наверное неправильно вырозился. TC ее видит, но при тестах не нажимает (не всегда)
  • 0

#4 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 27 октября 2010 - 09:56


Если ТС "не видит" кнопку, то для начала надо добиться, чтобы кнопка была "видна". А потом уже "нажиманием" заниматься.

В том то и дело что с кнопкой все впорядке. Я наверное неправильно вырозился. TC ее видит, но при тестах не нажимает (не всегда)



Попробуйте перед вызовом функции нажатия кнопки проверять свойства кнопки "Enabled" и "Visible".
М.б. эти свойства динамически меняют свои значения с "True" на "False": с таким поведением я сталкивался при тестировании инсталляторов.
  • 0

#5 Alex88

Alex88

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Алексеев

Отправлено 27 октября 2010 - 09:59



Если ТС "не видит" кнопку, то для начала надо добиться, чтобы кнопка была "видна". А потом уже "нажиманием" заниматься.

В том то и дело что с кнопкой все впорядке. Я наверное неправильно вырозился. TC ее видит, но при тестах не нажимает (не всегда)



Попробуйте перед вызовом функции нажатия кнопки проверять свойства кнопки "Enabled" и "Visible".
М.б. эти свойства динамически меняют свои значения с "True" на "False": с таким поведением я сталкивался при тестировании инсталляторов.

Да кнопка у меня там сначала Enabled false, но при вносе данных в форму становится Enabled true. Может какой нить рефреш делать?
  • 0

#6 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 27 октября 2010 - 10:02




Если ТС "не видит" кнопку, то для начала надо добиться, чтобы кнопка была "видна". А потом уже "нажиманием" заниматься.

В том то и дело что с кнопкой все впорядке. Я наверное неправильно вырозился. TC ее видит, но при тестах не нажимает (не всегда)



Попробуйте перед вызовом функции нажатия кнопки проверять свойства кнопки "Enabled" и "Visible".
М.б. эти свойства динамически меняют свои значения с "True" на "False": с таким поведением я сталкивался при тестировании инсталляторов.

Да кнопка у меня там сначала Enabled false, но при вносе данных в форму становится Enabled true. Может какой нить рефреш делать?


Попробуйте для начала сделать для всех объектов

sys.Refresh

  • 0

#7 Alex88

Alex88

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Алексеев

Отправлено 27 октября 2010 - 11:04

Спасибо, работает
  • 0

#8 Alex88

Alex88

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Алексеев

Отправлено 29 октября 2010 - 07:30

Спасибо, работает


  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных