Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Трудности в инициализации объектов (find, wait)


(Stanislav Vasenkov) #1

Тестирую java-приложение на платформе NetBeans (т.е. swing)
Инициализирую основные окна приложения с помощью такой функции

  function findObj(variable, property) //два массива свойств и значений
  {
    var mainObj = Sys.WaitProcess("javaw", 20000);
      if (mainObj.Exists) {
          var resultObj = mainObj.FindChild(variable, property, 30); 
          if (resultObj.Exists) {
              if (resultObj.WaitProperty("Enabled", true, 20000)) 
                  return resultObj;
              else 
                  Log.Error("Object found, but Enabled didn't become true"); //ошибка 1                
          } else {
              Log.Error("Object not found, see additional info", "Variables: " + variable.toString() + "\nProperty: " + property.toString()); //ошибка 2
          }
      } else {
          Log.Error("Javaw process not found"); //ошибка 3
      }
    return null;
  }

Искомый объект совершенно точно существует, однако периодически вылезает ошибка 2, реже ошибка 3, иногда ошибка 1.
Что я делаю не так?


(Игорь Онищенко) #2

День добрый! Какой property объекта вы используете для его поиска? Уверенны, что значение будет уникально?

В моей практике имел место случай, когда после работы с элементом(формы например) и его закрытия, он оставался в памяти и при повторном открытии создавался новый объект. При возникновении этой ошибки попробуйте найти объект в Object Browser-е, проверьте его искомый параметр, а также наличие дубликатов этого объекта. Если они есть - можно оформлять баг.