Верстак SilkTest Недопустимое исключение дескриптора объекта?

Я впервые пробую silktest с внутренним приложением. В одном из окон у меня есть кнопка с двумя списками меню:

New (pushbutton) ---> Option1 (list menu ) + Option2
if option1 clicked ---> subOption1, subOption2?

Все эти параметры зависят от текущего сценария и пользователя.

При записи silktest обнаруживает кнопку «Новый», но при воспроизведении выдает ошибку: the handle of the object is invalidated.

Одним из возможных решений является создание экземпляра Object примерно так:

dim button as New Pushbutton  

но выдает ошибку: SilkTest.ntf.Pushbutton.Friend sub New (handle as silk test.ntf.ObjectHandle) is not accessible in this context because it is 'Friend'

Кто-нибудь может помочь? Какие-либо предложения??


person Nancy89    schedule 13.09.2011    source источник


Ответы (2)


«Исключение Invalid Object Handle Exception» возникает, когда вы пытаетесь работать с объектом, который больше не является действительным, рассмотрим, например, диалоговое окно, которое закрыто, и после того, как вы попытаетесь что-то с ним сделать, оно больше не будет работать. Иногда сценарий не так очевиден, но основной принцип тот же.

Кроме того, не создавайте кнопки PushButton, получайте их с помощью метода find, это гарантирует, что они содержат допустимый дескриптор объекта.

Dim myButton As PushButton = myDialog.Find("//PushButton[@caption='New']")
myButton.Select()
person tehlexx    schedule 16.09.2011
comment
Спасибо telexx за ответ. Но когда я использую метод .Find, он вообще не обнаруживает кнопку PushButton! Есть ли другой способ создать экземпляр объекта кнопки в silktest? Я также пробовал ждать объекта, но это не имеет никакого значения. Какие-либо предложения? - person Nancy89; 20.09.2011
comment
Нет другого способа создать экземпляр этих объектов, вы всегда используете find. Если объект не найден, обычно это происходит из-за неправильного локатора. Самый простой способ узнать локатор объекта — записать его. - person tehlexx; 21.09.2011

Постарайтесь убедиться, что фокус находится на кнопке, которую вы хотите нажать. Если вы используете silk4j, попробуйте сначала установить фокус() на этом элементе или даже на его родительском элементе.

person Jian    schedule 27.02.2020