Проблема, связанная с методом Exist - PullRequest
2 голосов
/ 28 августа 2010

Я сталкиваюсь с проблемами при использовании метода Exist в QTP. Как, если я использую Exist с If, тогда он работает нормально ... но если используется напрямую, то не работает ...

Пример:

Browser("Home").Page("Home_2").WebEdit("ctl00$uxMNJDefaultContentPlace").Click
Browser("Home").Page("Home_2").WebEdit("ctl00$uxMNJDefaultContentPlace").Set DataTable("mfgpartnumber", dtGlobalSheet)  ''#Read mfg# from datasheet

Browser("Home").Page("Home_2").Image("ctl00$uxMNJDefaultContentPlace").FireEvent "onmouseover"

Browser("Home").Page("Home_2").Image("ctl00$uxMNJDefaultContentPlace").Click 31,11
wait(15)

Browser("Home").Page("Shopping Cart").WebElement("$3.99").Output CheckPoint("Shoppingcart_subtotal")

Browser("Home").Page("Shopping Cart").Check CheckPoint("Shopping Cart_price_2")

''#Browser("Home").Page("Shopping Cart").WebElement("$3.99").Output CheckPoint("$3.99")

Browser("Home").Page("Shopping Cart").Image("ctl00$uxMNJDefaultContentPlace").FireEvent "onmouseover"

Browser("Home").Page("Shopping Cart").Image("ctl00$uxMNJDefaultContentPlace").Click 66,10
wait(5)

Browser("Home").Page("Edit Shipping Address").Link("Continue").Click
wait(5)

Browser("Home").Page("Order Shipping Method").Link("Continue").Click
wait(5)

Здесь я хочу заменить ожидание (_ каким-то другим методом, например, Exist, чтобы улучшить производительность ...

Может кто-нибудь помочь мне разобраться ..,.

Спасибо, Гудду Г

Ответы [ 3 ]

2 голосов
/ 30 августа 2010

@ guddu

Поскольку вы ожидаете, пока браузер загрузит другую страницу, используйте Browser.Sync, где это применимо.
Если объект не появляется сразу после перезагрузки страницы, используйте метод .Exist спараметр.
Пример:

boolRC = Browser("Home").Page("Shopping Cart").WebElement("$3.99").Exist(15)  

Таким образом, вы предоставляете до 15 секунд для появления объекта.Если объект появляется раньше, ваш сценарий движется быстрее.
Если объект становится доступным для работы с задержкой после его появления, используйте метод WaitProperty, как указал @katmoon.

Наконец, вы можете реализовать свою собственную функцию синхронизации с настраиваемыми параметрами, такими как событие (появление / исчезновение и т. Д.), Время ожидания, свойство для проверки ...

Пример: http://automation -beyond.com / 2009/08/20 / пользовательская функция синхронизации объектов gui /

Спасибо,
Альберт Гареев
http://automation-beyond.com/

0 голосов
/ 21 января 2014

Привет. Это простая функция, которую я использую вместо ожидания и отключенного свойства. Я думаю, что это может помочь.

0 голосов
/ 31 декабря 2013

Wait - метод используется для указания QTP ждать выполнения процесс, основанный на только указанное время, но не при каких-либо условиях Например. Ожидание 5 (или) Ожидание (5) ‘5 секунд

Этот метод не рекомендуется. Всегда используйте динамическое ожидание для ускорения выполнения.

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

например. Браузер ("Welcome: Mercury Tours"). WaitProperty "name" "Welcome: Меркурий Турс "5000

  1. имя свойства - "имя"
  2. стоимость недвижимости - «Welcome: Mercury Tours»
  3. 5000 - количество миллисекунд ожидания

    Дим я = 0 делать I = I + 1

    bstatus = browser (). Exist (1) '"1" означает, что он будет ждать не более 1 секунды, а затем продолжит работу

    если я> 15, то здесь 'укажите время ожидания (я упомянул 15 секунд)

    exit do
    

    Конец, если

    цикл до bstatus = true

Предоставляя точку синхронизации, тестер пытается сопоставить выполнение скорость QTP и приложения, потому что может случиться так, что следующий операция, которую вы выполняете, зависит от предыдущего результата и это еще не сгенерировано. Время ожидания по умолчанию для любого объекта составляет 20 секунд, а объект не появляется через 20 секунд, чем это может привести к ошибке сценария. Так что, чтобы избежать такого при условии, что мы используем точки синхронизации

Всегда использовать Waitproperty Не используйте жестко запрограммированное ожидание

Метод Exist всегда возвращает логическое значение

Object.exist или Browser (). Page (). Exist () это вернет логическое значение, скажем true или false

blnStatus = Browser (). Exist ()

msgbox blnstatus 'возвращает true или false

...