Как нажать "SwfObject", используя UFT?
Я хочу нажать на ссылку [Link name is 'Settlement']
и на этой странице есть несколько ссылок.
ПРИМЕЧАНИЕ: шпион объекта не идентифицирует "поселение" как ссылку, а рассматривает его как панель обозревателя. Когда я беру объект шпионить за текстом "Расчет", он выделяет всю панель обозревателя, из-за чего я не могу получить определенные свойства "Расчет". [см. прикрепленный снимок экрана. По соображениям безопасности я не могу загрузить реальный снимок экрана].
Во время записи я могу нажать ссылку "Расчет"
SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar").Click 133,598
В настоящее время 133 и 598 являются жестко закодированными значениями для "Расчет", но в будущем позиция "Расчет" может измениться.
Итак, я хочу знать, как я могу щелкнуть ссылку "расчет", используя координаты X & Y, где шпион объекта не может отдельно идентифицировать ссылку "расчет"?.
ИЛИ есть ли другой способ щелкнуть объекты этого типа?
Спасибо онкар
3 ответа
В таком случае я бы рекомендовал использовать объект виртуальной кнопки.
В вашем UFT перейдите по ссылке:
Инструменты> Виртуальный объект> Новый виртуальный объект
Выберите "Кнопка" и нажмите кнопку "Отметить объект". Курсор перекрестка появится и отметит объект, который вы хотели бы отобразить. Выберите область в координатах, которые вы хотели бы щелкнуть.
Когда вы закончите, нажмите "Далее".
Выберите родителя Виртуального объекта и нажмите "Далее".
Назовите кнопку, например, "myButton", назовите коллекцию, в которой вы хотите сохранить виртуальный объект, и нажмите "Готово".
Теперь вы можете использовать кнопку "myButton" в вашем скрипте:
SwfWindow("Platform Integration Exchange").VirtualButton("myButton").Click
Используйте Insight Objects. В моем проекте мы используем приложение SWF. Для части приложения это не идентифицируется, хотя это одна из основных частей приложения. Поэтому мы используем Insight Object. Работает отлично.
еще
Вы можете использовать метод Click, только если отдельно обозначен как объект Swf
Синтаксис: object.Click [X], [Y], [BUTTON]
X, Y, КНОПКА являются необязательными. По умолчанию он собирается щелкнуть левой кнопкой мыши.
X, Y - координаты.
Если вы хотите нажимать разные кнопки, используйте следующее.
0=micLeftBtn
1=micRightBtn
2=micMiddleBtn
Для LeftClick:SwfWindow("Form1").SwfObject("Object1").Click
Для правого клика:SwfWindow("Form1").SwfObject("Object1").Click 1,1,1
Для среднего клика:SwfWindow("Form1").SwfObject("Object1").Click 1,1,2
У меня та же проблема с приложением powerbuilder, и я использую функцию ниже. Я изменил его по вашему требованию
Публичная функция CLICKTEXTINSIDEOBJECT
Dim OperatedObject
Dim X1, X2, Y1, Y2
X1=0
X2=0
Y1=0
Y2=0
'get the object
Set OperatedObject = SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar")
'get the co-ordinates of the text to be clicked
OperatedObject.GetTextLocation "Settlement",X1,Y1,X2,Y2
''Check if the Co-ordinates are assigned
if ((X1 > 0) or (Y1 > 0)) then
OperatedObject.Click (X1 + X2)/2, (Y1+Y2)/2
CLICKTEXTINSIDEOBJECT = true
Else
CLICKTEXTINSIDEOBJECT = false
End If
Конечная функция
Ниже приведено описание объекта GetTextLocation