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

Фотография

Поиск объекта, если он меняет имя


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

#1 primko

primko

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

  • Members
  • Pip
  • 3 сообщений

Отправлено 17 марта 2016 - 20:40

Добрый день. Только начинаю осваивать автоматизацию, так что строго не судите =)
TC 11.30, jscript. Тестирую delphi приложение, скомпилированное как open

 

Суть проблемы такова: после определенных действий в приложении запускается объект для ввода данных - в объект браузере ТС VCLObject("setModal"), но при следующем запуске этого же действия данный объект имеет уже имя VCLObject("setModal_1") и тд. с увеличение имени +1 при каждом вызове. В браузере объектов отображается только один объект setModal (последний), но по коду могу обратиться с любому из них. В результате не зная точного количества вызовов этого объекта не могу обратиться к нужному.

Сами эти объекты понятное дело идентичны по содержанию,  через FindChild получаю первый объект, через FindAll получаю массив неопределенных объектов по количеству совпадающего с номером setModal, но к ними пока так же не придумал как действовать.
Может есть какие у кого соображения как реализовать поиск нужного мне объекта? 


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 17 марта 2016 - 22:32

А какой тебе объект нужен? Через FindAll можешь считать count и обращаться к ним как count - 1 и тд("setModal_" + (el_count-1))
  • 0

#3 primko

primko

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

  • Members
  • Pip
  • 3 сообщений

Отправлено 18 марта 2016 - 06:02

Сейчас вот сел, покрутил, почитал и оказалось неправильно организовывал сам массив результатов FindAll - добавил toArray() - нашлись все объекты и определились, получил размерность массива, ну а дальше имя уже составлю
Спасибо за помощь)


  • 0

#4 anagramma

anagramma

    Активный участник

  • Members
  • PipPip
  • 87 сообщений
  • Город:Moskow

Отправлено 18 марта 2016 - 12:51

 VCLObject("setModal_*")

не?


  • 0

#5 primko

primko

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

  • Members
  • Pip
  • 3 сообщений

Отправлено 18 марта 2016 - 18:23

 VCLObject("setModal_*")

не?

в таком виде он обращается к первому найденному, то есть к setModal_1, а последний создался например с именем setModal_30. Реализовал так:

function NameSetModal() 
{
  var  i, q, name;
  var lab = Sys.Process("lab");
  var PropArray = "ClassName";
  var ValuesArray = "TsetModal";

  var res = lab.FindAll(PropArray, ValuesArray).toArray();
  if (res.length > 1)
  {
  name = "setModal_" + (res.length-1);
  }
  else name = "setModal"
//  Log.Message(name)
  return (name)

  • 0


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

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