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

Фотография

Как получить свойства элемента зная только его ClassName


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

#1 madboy4ik

madboy4ik

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

  • Members
  • Pip
  • 62 сообщений
  • ФИО:Александр Александрович
  • Город:Kharkov

Отправлено 28 октября 2010 - 22:32

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

Есть веб приложение в котором есть строка поиска и кнопка "Найти".
После того как будет введён текст и нажата кнопка - вернутся значения в таблице WebTable
Если в строку поиска вводить разные значения, то и имя WebTable будет разное

например если ввести Apple iPhone 8Gb то будет WebTable("Apple iPhone 3G (8Gb)")
если ввести Apple iPhone 32Gb то будет WebTable("Apple iPhone 3G S (32Gb)")

Эта строка у никогда не меняется Browser("Browser").Page("TUT.BY | МАГАЗИНЫ | Поиск")
И я знаю что у меня объект будет следующий Browser("Browser").Page("TUT.BY | МАГАЗИНЫ | Поиск").WebTable(что будет здесь я не знаю)

Как мне получить свойство name у WebTable ?

пробовал делать так
Set oDesc = Description.Create()
    oDesc("micclass").Value = "WebTable"
    oDesc("html tag").Value = "TABLE"

Dim webTable
Set webTable =Browser("Browser").Page("TUT.BY | МАГАЗИНЫ | Поиск").ChildObjects(oDesc)
For i=1 To webTable.count
testing = webTable(i).GetROProperty("name")
MsgBox testing & i
Next

но таких объектов получается много, и при разном поиске нужное значение может находится в одном и том же месте.

Подскажите можно ли как то это проще сделать ? Есть вариант сделать это через RegEx, но если можно проще, подскажите пожалуйста

Прикрепленные файлы

  • Прикрепленный файл  29.10.png   27,27К   19 Количество загрузок:

  • 0

#2 Rara

Rara

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

  • Members
  • PipPip
  • 83 сообщений
  • ФИО:Кондрашов Юрий Алексеевич
  • Город:Минск, Беларусь


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

Если я правильно понял, то вы пытаетесь получить имя объекта из репозитория, при этом сам объект (WebTable) вы туда не добавили. Такой фокус не пройдёт.

Чтобы обратиться к таблице вы можете:
  • При создании скрипта в репозитории объектов отредактировать параметры, по которым QTP находит WebTable, таким образом, чтобы они всегда соответствовали нужной таблице с результатами поиска. При этом, какое будет имя у WebTable, никак не влияет на распознавание объекта на странице (у html-тэга table нету свойства name). По имени вы обращаетесь к WebTable только в своём скрипте.
  • Либо можно обратится к таблице на странице используя программное описание (programmatic description), в котором указать те же параметры, по которым QTP сможет отличить объект на странице от всех остальных, например:
Browser("Browser").Page("TUT.BY | МАГАЗИНЫ | Поиск").WebTable("Class:=cfs-tbl")

  • 0
Я бы переписал жизнь, но Бог не дает мне исходники

#3 madboy4ik

madboy4ik

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

  • Members
  • Pip
  • 62 сообщений
  • ФИО:Александр Александрович
  • Город:Kharkov

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

Если я правильно понял, то вы пытаетесь получить имя объекта из репозитория, при этом сам объект (WebTable) вы туда не добавили. Такой фокус не пройдёт.

Чтобы обратиться к таблице вы можете:

  • При создании скрипта в репозитории объектов отредактировать параметры, по которым QTP находит WebTable, таким образом, чтобы они всегда соответствовали нужной таблице с результатами поиска. При этом, какое будет имя у WebTable, никак не влияет на распознавание объекта на странице (у html-тэга table нету свойства name). По имени вы обращаетесь к WebTable только в своём скрипте.
  • Либо можно обратится к таблице на странице используя программное описание (programmatic description), в котором указать те же параметры, по которым QTP сможет отличить объект на странице от всех остальных, например:
Browser("Browser").Page("TUT.BY | МАГАЗИНЫ | Поиск").WebTable("Class:=cfs-tbl")


Спасибо за подсказку я разобрался, надо было параметризировать
oDesc("Сlass").Value = "cfs-tbl"

и тогда оно точно находит ту таблицу что нужно :)
  • 0


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

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