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

Фотография

ChildObjects не работает с большими объемами данных


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

#1 Ciber

Ciber

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

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

Отправлено 11 февраля 2013 - 13:52

Здравствуйте, я столкнулся с такой проблемой:на веб срнице есть фрейм, под этим фреймом дерево файлов. для навигации по дереву я получаю ChildObjects у фрейма и потм выбираю из полученой коллекции нужный мне нод и кликаю на него. проблема в том что когда дерево развернуто не полностью то все работает отлично, а если на нем уже открыто больше 50 нодов то выпадает ошибка: general run error. при дебаге показывает что oCollection.count = 1 , а oCollection.item(0)= <cannot evaluate>. Возможно кто-то уже сталкивался с подобной проблемой или знает пути ее решения? зарание спасибо за ответ.
  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 12 февраля 2013 - 10:34

Здравствуйте, я столкнулся с такой проблемой:на веб срнице есть фрейм, под этим фреймом дерево файлов. для навигации по дереву я получаю ChildObjects у фрейма и потм выбираю из полученой коллекции нужный мне нод и кликаю на него. проблема в том что когда дерево развернуто не полностью то все работает отлично, а если на нем уже открыто больше 50 нодов то выпадает ошибка: general run error. при дебаге показывает что oCollection.count = 1 , а oCollection.item(0)= <cannot evaluate>. Возможно кто-то уже сталкивался с подобной проблемой или знает пути ее решения? зарание спасибо за ответ.

Возможно, проблемы с памятью. А может дерево не до конца загружен и рефрешится в момент получения child objects.

Попробуйте подождать перед получением коллекции.

Если не поможет, то используйте xpath для обхода элементов дерева (поддерживается с 11-й версии)
  • 1

#3 Ciber

Ciber

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

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

Отправлено 13 февраля 2013 - 11:37

проблема решилась, оказывается ChildObjects, по не понятной для меня причине, не работает с большими объемами данных если в дескрипторе используются регулярные выражения.
т.е.
Set oObjectDescription = Description.Create
oObjectDescription("html id").Value = "регулярное выржение"
oObjectDescription("micclass").Value = "WebElement"
oObjectDescription("html tag").Value = "DIV"
Set oCollection = oLocation.ChildObjects (oObjectDescription)
не работало, а вот в таком виде:
Set oObjectDescription = Description.Create
oObjectDescription("micclass").Value = "WebElement"
oObjectDescription("html tag").Value = "DIV"
oObjectDescription("html tag").RegularExpression = False
Set oCollection = oLocation.ChildObjects (oObjectDescription)

работает прекрасно. правда потом пришлось извращатся и в цикле из полученой коллекции выбирать нужные мне ноды по регулярному выражению из первого варианта. если кто-то знает лучший способ решения этой проблемы, то прошу поделиться.
  • 0

#4 Art-temNos

Art-temNos

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Артем Носов

Отправлено 21 июля 2013 - 17:37

Я извиняюсь, а компьютерщик рядовой в состоянии такие баги поправить, чтоб не ломалось так больше?
  • 0


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

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