2017-04-24 4 views
-1

enter image description hereComment cliquer sur 'SwfObject' en utilisant UFT?

Je veux cliquer sur un lien [Link name is 'Settlement'] et il y a nombre de liens sur cette page.

REMARQUE: l'espion Object n'identifie pas 'Settlement' comme lien à la place de la barre d'exploration. Quand je prends l'objet espion dans le texte 'Settlement', il met en évidence toute la barre d'exploration à cause de laquelle je ne suis pas capable d'obtenir les propriétés spécifiques de 'Settlement'. [Voir la capture d'écran ci-jointe. Pour des raisons de sécurité, je ne peux pas télécharger une vraie capture d'écran].

Grâce à l'enregistrement, je suis en mesure de cliquer sur le lien « établissement »

SwfWindow("Platform Integration Exchange").SwfObject("mainExplorerBar").Click 133,598

Actuellement, 133 598 sont & valeur pré-programmée pour la position « règlement », mais à l'avenir « règlement » peut changer.

Donc, je veux savoir, Comment puis-je cliquer sur un lien de «règlement» en utilisant X & Y coordonnée où Object espion n'est pas capable d'identifier le lien «Règlement» séparément?

OU existe-t-il un autre moyen de cliquer sur ce type d'objet?

Merci Onkar

Répondre

1

Dans ce cas, je vous recommande d'utiliser un objet bouton virtuel .

Dans votre UFT, allez à:

> Outils objet virtuel> Nouvel objet virtuel

Choisissez "Button" et cliquez sur "Mark objet" Bouton. Un curseur en forme de croix apparaît et marque l'objet que vous souhaitez mapper. Choisissez la zone dans les coorrhinates que vous souhaitez cliquer. Lorsque vous avez terminé, cliquez sur "Suivant".

Sélectionnez le parent de l'objet virtuel et cliquez sur "Suivant".

Nom du bouton, par exemple, « myButton », et le nom de la collection dans laquelle vous souhaitez stocker l'objet virtuel et cliquez sur « Terminer ».

Vous pouvez maintenant utiliser le bouton "myButton" dans votre script:

SwfWindow("Platform Integration Exchange").VirtualButton("myButton").Click 
+0

Salut Koby, Merci pour votre solution et ça a marché pour moi. Une seule chose, Comme nous savons que l'objet virtuel fonctionne sur la hauteur et la largeur de l'objet. Si à l'avenir, la position de 'Settlement' change alors cette solution fonctionnera-t-elle? Ou dois-je prendre un nouvel objet virtuel pour 'Settlement? – onkar

+0

Heureux cela a fonctionné! Essayez de rendre l'objet virtuel aussi grand que possible sans risquer de cliquer sur d'autres éléments. Si la position change, il suffit de changer les éléments dans le repisitoire de l'objet. Si cette solution résout le problème, accepter ma réponse comme correcte serait très apprécié. –

1

Utilisez les objets Insight. Dans mon projet Nous utilisons une application swf. Pour une partie dans l'application, il ne s'identifie pas, même si c'est l'une des parties principales de l'application. Nous utilisons donc Insight Object. Cela fonctionne parfaitement bien.

autre

Vous pouvez utiliser la méthode Cliquez uniquement si identifié séparément comme Swf objet

La syntaxe est: object.Click [X], [Y], [BOUTON]

X, Y, Le bouton est facultatif. Par défaut, il va faire un clic gauche.

X, Y sont des coordonnées.

Si vous souhaitez cliquer sur différents boutons, utilisez la commande suivante.

0=micLeftBtn 
1=micRightBtn 
2=micMiddleBtn 

Pour LeftClick: SwfWindow("Form1").SwfObject("Object1").Click
Pour Clic droit: SwfWindow("Form1").SwfObject("Object1").Click 1,1,1
pour le Moyen-Click: SwfWindow("Form1").SwfObject("Object1").Click 1,1,2

+0

Merci Suman, j'ai essayé l'objet Insight et cela a fonctionné avec succès. – onkar

1

J'ai le même problème avec l'application PowerBuilder et utiliser la fonction ci-dessous. Je l'ai modifié pour vos besoins

Fonction publique 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 

End Function

Ci-dessous la description de l'objet GetTextLocation

http://uft-help.saas.hpe.com/en/14.00/UFT_Help/Subsystems/FunctionReference/Subsystems/OMRHelp/Content/WindowsForms/SWFPACKAGELib~SwfObject.html#GetTextLocation

+0

Salut Sumeet, Merci pour votre solution, mais cela ne fonctionne pas pour moi. J'ai couru votre code et suis resté bloqué à OperatedObject.Click (X1 + X2)/2, (Y1 + Y2)/2 J'ai l'erreur suivante "L'instruction contient un ou plusieurs arguments non valides argument" Je reçois X1, Valeurs X2, Y1 et Y3 mais pas en mesure de cliquer. – onkar

+0

Vérifier, si le résultat de (X1 + X2)/2 et (Y1 + Y2)/2 est entier. Aussi, si cela ne fonctionne pas, vous pouvez simplement cliquer sur le X1 + 5 et Y1 + 5 et voir si cela fonctionne. –

+1

Merci Sumeet, ça a marché ... Plus tôt, j'avais l'habitude d'obtenir des coordonnées en décimal. Pas x1 + 5 travaille pour moi ... Merci Encore une fois – onkar