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

Фотография

QTP работает со своим кешем ?


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

#1 cupper

cupper

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

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

Отправлено 07 августа 2009 - 07:53

Значит вот такая проблема. Я работаю с динамическими параметрами а QTP походу со своим статическим кешем %)
Есть веб интерфейс, там нужно создать некий обект которому динамически при создании присвоиться его ID и потом сделать по этому ID посик. Предположим объект уже создан. В QTP записываю щаги:
1) зайти на сайт
2) перейти на нужную страничку
3) тут первая проблема: на этой странице есть линк на созданый объект, его ID указан в этом линке, я выбераю из етого линка в переменную Environment(id) адрес этого элемента. НО если при создании теста я не кликал по этому линку, а просто дописл ету строчку в когде QTP на отрез отказываеться узнавать етот объект. Приходиться при записи теста переходить по этому линку, а потом в коде править ету строчку чтобы не переходить на нее а проста брать адрес линка
Environment("id") = Browser("Browser").Page("test").Link("test1").GetTOProperty("href")
А если точно такуюже строку написать руками (т.е. при записи теста не переходить по линку) то он неможет его опознать. Почему так ? Както неочень удобно, если я незнаю какой мне именно линк нужен мне приходить производить дозапись в тест и после править, вместо того чтобы проста дописать в коде строчку.
4) Далее перехожу на страницу посика
5) Вписываю в поле посика ID того объекта
Browser("Browser").Page("test").WebEdit("poid").Set Right(Environment("id"), 16)

Значит все ето прекрастно работает до тех пор пока на сайте остаеться один и тотже созданые объект. Если его удалить. Создать точно такойже (имя и все прочее, но ID ему присвоиться другой) то QTP попрежнему сохраняет ID старого объекта. Если в Activ Screen посматреть на моменте когда он должен выдерать ID то там и в правду остаеться тот же объект который и был первоначально. ЧЕ ЗА НАХ (простите не удержался)? етот как ваще так О_О, он вовсе не с сайтом работает а со своим кешем ???

Если создать объект с другим именем, и в QTP в коде езменить имя на новый объект то он говорит:
The "test1" Link object was not found in the Object Repository.
Check the Object Repository to confirm that the object exists or to find the correct name for the object.
и правильно, ибо в его кеше попрежнему весит старый обект.
Почему так, как с этим бороться ?

PS. тема закрыта, проблема, в плохом англ :(
  • 0

#2 Jed Meyers

Jed Meyers

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Jed Ezriela Meyers

Отправлено 14 августа 2009 - 08:31

Я понимаю что тема закрыта, но может у меня получиться немного прояснить ситуацию.
Когда вы делаете:
Environment("id") = Browser("Browser").Page("test").Link("test1").GetTOProperty("href")
вы получаете проперти href из обьекта который сохранен в обьектной репозитории (может это для вас и есть "кеш").
Для того что бы получить href реально отображаемого обьекта надо вызывать GetROProperty причем проверьте, что бы href не был mandatory проперти у обьекта Link в репозитории, иначе обьект на странице не будет найден.
Environment("id") = Browser("Browser").Page("test").Link("test1").GetROProperty("href")

  • 0


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

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