2017-04-24 8 views
-1

enter image description hereWie klicken Sie auf 'SwfObject' mit UFT?

Ich möchte [Link name is 'Settlement'] auf einen Link klicken und es gibt Anzahl der Links auf dieser Seite.

HINWEIS: Objektspion identifiziert "Settlement" nicht als Link, sondern als Explorer-Leiste. Wenn ich den Objekt-Spion auf "Settlement" -Text nehme, markiert er den gesamten Explorer-Balken, aufgrund dessen ich nicht in der Lage bin, "Settlement" -spezifische Eigenschaften zu erhalten. [Siehe beigefügten Screenshot. Aus Sicherheitsgründen kann ich keinen echten Screenshot hochladen].

Durch Aufnahme, ich bin in der Lage 'Settlement' klicken Link

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

Derzeit 133 & 598 sind, kann hart codierten Wert für 'Settlement', sondern in Zukunft 'Settlement' Position ändern.

So möchte ich wissen, wie kann ich einen 'Siedlung' Link mit X & Y-Koordinate, wo Object Spion ist nicht in der Lage, 'Settlement' Link getrennt zu identifizieren.

ODER gibt es eine andere Möglichkeit, auf diese Art von Objekten zu klicken?

Dank Onkar

Antwort

1

In einem solchen Fall würde ich empfehlen, eine virtuelle Taste Objekt.

In Ihrem UFT, gehen Sie zu:

Tools> Virtuelle Objekt> Neue virtuelle Objekt

"Button" Wählen Sie und klicken "Mark Object" Knopf. Ein Fadenkreuz-Cursor würde erscheinen und markieren Sie das Objekt, das Sie zuordnen möchten. Wählen Sie den Bereich in den Koordinaten aus, auf den Sie klicken möchten.

Wenn Sie fertig sind, klicken Sie auf "Next".

Wählen Sie das übergeordnete Objekt des virtuellen Objekts aus, und klicken Sie auf "Next".

Namen der Knopf, zum Beispiel „myButton“, und benennen Sie die Sammlung, in dem Sie das virtuelle Objekt speichern möchten, und klicken Sie „Finish“.

Sie können nun die "myButton" -Button in Ihrem Skript verwenden:

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

Hallo Koby, Vielen Dank für Ihre Lösung und es hat für mich funktioniert. Nur eine Sache, wie wir wissen, dass virtuelles Objekt auf die Höhe und Breite des Objekts funktioniert. Wenn sich in Zukunft die Position "Abwicklung" ändert, wird diese Lösung funktionieren? Oder muss ich ein neues virtuelles Objekt für "Settlement" nehmen? – onkar

+0

Happy das hat funktioniert! Versuchen Sie, das virtuelle Objekt so groß wie möglich zu machen, ohne die Möglichkeit zu haben, auf andere Elemente zu klicken. Wenn die Position geändert wird, ändern Sie einfach die Elemente im Objektspeicher. Wenn diese Lösung das Problem lösen würde, wäre es sehr wünschenswert, meine Antwort als korrekt zu akzeptieren. –

1

Verwenden Insight Objects. In meinem Projekt verwenden wir swf-Anwendung. Für einen Teil in der Anwendung wird es nicht identifiziert, obwohl es einer der Hauptteile von Application ist. Also benutzen wir Insight Object. Es funktioniert vollkommen in Ordnung.

sonst

Sie Methode Klicken Sie nur separat verwenden können als SWF-Objekt

identifiziert, wenn

Syntax ist: object.Click [X], [Y], [TASTE]

X, Y, BUTTON sind optional. Standardmäßig wird es Linksklick.

X, Y sind Koordinaten.

Wenn Sie möchten, dass verschiedene Schaltflächen angeklickt werden, verwenden Sie bitte folgendes.

0=micLeftBtn 
1=micRightBtn 
2=micMiddleBtn 

Für Linksklick: SwfWindow("Form1").SwfObject("Object1").Click
Für Rechtsklick: SwfWindow("Form1").SwfObject("Object1").Click 1,1,1
Für Middle Click: SwfWindow("Form1").SwfObject("Object1").Click 1,1,2

+0

Danke Suman, ich habe versucht Insight Objekt und es hat erfolgreich funktioniert. – onkar

1

Ich habe das gleiche Problem mit Powerbuilder-Anwendung und ich verwende die unten Funktion. Ich habe es für Ihre Anforderung geändert

Public Function 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

Unterhalb der Beschreibung des GetTextLocation Objekt ist

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

+0

Hallo Sumeet, Danke für Ihre Lösung, aber es funktioniert nicht für mich. Ich lief Ihren Code und blieb bei OperatedObject.Click (X1 + X2)/2, (Y1 + Y2)/2 Ich habe folgenden Fehler "Die Anweisung enthält ein oder mehrere ungültige Funktionen Argument" Ich bekomme X1, X2-, Y1- und Y3-Werte, aber nicht in der Lage zu klicken. – onkar

+0

Überprüfen Sie, ob das Ergebnis von (X1 + X2)/2 und (Y1 + Y2)/2 ganzzahlig ist. Auch wenn das nicht funktioniert, kannst du einfach auf X1 + 5 und Y1 + 5 klicken und sehen, ob das funktioniert. –

+1

Dank Sumeet, es hat funktioniert ... Früher habe ich die Koordinaten dezimal bekommen. Nicht x1 + 5 funktioniert für mich ... Danke nochmal – onkar