Автоматизация тестирования - проблема с ожиданием загрузки объекта - PullRequest
0 голосов
/ 05 июня 2018

Справочная информация:

У меня есть приложение JAVA , для которого мы запускаем наши сценарии Test Complete (недавно мы перешли от UFT к TestComplete, поэтому TC являетсянемного нового для нас).Используемый язык сценариев VBScript .

Проблема:

Чтобы справиться с медленным поведением приложения, я создал функцию, которая ожидаетобъект, который нужно загрузить и стать видимым на экране перед выполнением какой-либо операции с этим объектом.Но иногда эта функция не работает.Под этим я подразумеваю, что, хотя объект загружен и виден на экране, функция все еще продолжает ожидать объект, т. Е. uiObject.exists продолжает возвращать false, из-за чего она продолжает ждать, пока значение тайм-аутадостигнутоКто-нибудь здесь сталкивался с этой проблемой раньше?

Переданы значения параметров:

uiObject = Aliases.SonataRDA.Login_Window
intMaxTimeOut = 120

Код

'============================================================================================================
'Function Name: fn_waitForObject
'Purpose:       To wait for an object to exist and become visible on screen
'Creation Date: 04-06-2018 
'Return type:   true, if the object exists and is visible; false, if the object doesn't exist
'Parameters:    uiObject - The object for which the script waits to get visible on screen
'               intMaxTimeOut - Maximum timeout in seconds
'============================================================================================================
function fn_waitForObject(uiObject,intMaxTimeOut)
    Dim intCounter : intCounter = 0
    Do While (intCounter < intMaxTimeOut)
        If uiObject.exists then
            Exit Do
        Else
            intCounter = intCounter + 1
            delay 1000
        End If
    Loop

    'If the object exists, make sure that it is visible on screen
    If uiObject.exists then
        Do While (intCounter < intMaxTimeOut)
            If uiObject.visibleonscreen then
                Log.Message "The object """&uiObject.toString&""" exists and is visible on screen"
                Exit Do
            Else
                intCounter = intCounter + 1
                delay 1000
            End If
        Loop
    End If
    fn_waitForObject = uiObject.visibleonscreen
End Function

Снимок объекта, которого я жду:

enter image description here

Объект Spy enter image description here

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Какова действительная ошибка в TC?

Вы видели эту ссылку?https://support.smartbear.com/testcomplete/docs/app-objects/common-tasks/waiting-process-or-window-activation.html

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

Пока вы можете увеличить максимальное значение тайм-аута, но цикл while все равно будет иметьжесткий верхний предел.Я рекомендую использовать один из методов, перечисленных в статье выше, поскольку они заставят TestComplete ожидать полной загрузки вашего процесса / объектов, независимо от того, сколько времени прошло.Таким образом, вы больше не столкнетесь с текущей проблемой.

0 голосов
/ 04 марта 2019

Это сопоставление имен, создающее вторую версию того же объекта.

Перейдите в сопоставление имен и отредактируйте свойства, чтобы использовать только статические свойства, чтобы новые версии того же объекта UIO не создавались.

0 голосов
/ 05 июня 2018

Может быть, информация по этой ссылке может вам помочь!

В чем разница между UIObject и UIObject2, кроме имени версии UIAutomator 2.0?

...