2017-04-24 3 views
-1

enter image description hereUFTを使用して 'SwfObject'をクリックするには?

リンク[Link name is 'Settlement']をクリックして、そのページにリンクがいくつかあります。

注:オブジェクトスパイはリンクとして[決済]を識別せず、代わりにエクスプローラバーと見なします。オブジェクトのスパイを「決済」テキストに表示すると、エクスプローラバー全体が強調表示され、「決済」の特定のプロパティを取得することができなくなります。 [添付のスクリーンショットを参照してください。セキュリティ上の理由から、実際のスクリーンショットをアップロードすることはできません]。

は記録を通して、私は変更される可能性があり、位置「和解」のためではなく、将来の「和解」に「決済」リンク

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

現在、133 & 598がハードコーディングされている値をクリックすることができています。

私は、オブジェクトスパイが「決済」リンクを個別に識別することができないY座標を使用して、「決済」リンクをクリックすることはできますか?

これらのオブジェクトをクリックする方法は他にありますか?

おかげでこのような場合には Onkar

答えて

1

は私が仮想ボタンオブジェクトを使用することをお勧めします。あなたのUFTで

、に行く:

ツール]> [仮想オブジェクト]> [新規仮想オブジェクト

"ボタン"を選択し、"マークオブジェクト"ボタンをクリックします。十字カーソルが表示され、マップしたいオブジェクトをマークします。クリックしたいコーディネイト内の領域を選択します。

完了したら、"次へ"をクリックします。

仮想オブジェクトの親を選択し、"次へ"をクリックします。

名前のボタンは、例えば、「myButtonの」は、あなたが仮想オブジェクトを格納し、「完了」をクリックしたいと思いれるコレクションの名前を指定します。

今、あなたのスクリプトで "myButtonという" ボタンを使用することができます。

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

こんにちはKoby、あなたのソリューションをありがとうそれは私のために働いた。 仮想オブジェクトはオブジェクトの高さと幅で動作することがわかっているので、1つだけです。将来、「決済」のポジションが変更されたら、このソリューションは機能しますか?あるいは、私は「決済」のための新しい仮想オブジェクトを取らなければなりませんか? – onkar

+0

これはうまくいきました!他の要素がクリックされることなく、できるだけ大きな仮想オブジェクトを作成してみてください。位置が変わった場合は、オブジェクトrepisitoryの要素を変更してください。この解決策が問題を解決した場合、私の答えを正しいものとして受け入れることは高く評価されます。 –

1

使っインサイトオブジェクトを。私のプロジェクトでは、swfアプリケーションを使用しています。それはアプリケーションの主要な部分の1つですが、アプリケーションの一部のためにそれは識別されていません。したがって、Insightオブジェクトを使用します。それは完璧に正常に動作します。他

別途SWFオブジェクトとして識別される場合にのみ、あなたが方法をクリックして使用することができます

構文は次のとおりです。object.Click [X]、[Y]、[BUTTON]

X、Y、ボタンはオプションです。 デフォルトでは左クリックされます。

X、Yは、座標である。

クリックするボタンを変更したい場合は、以下を使用してください。ミドルクリックのためにSwfWindow("Form1").SwfObject("Object1").Click 1,1,1

LeftClickについては
0=micLeftBtn 
1=micRightBtn 
2=micMiddleBtn 

:右クリックの場合SwfWindow("Form1").SwfObject("Object1").Click
SwfWindow("Form1").SwfObject("Object1").Click 1,1,2

+0

Thanks Suman、Insightオブジェクトを試してみましたが、正常に動作しました。 – onkar

1

は、私は、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のオブジェクトについての記述であるエンド機能

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

+0

こんにちはSumeet、 あなたのソリューションに感謝しますが、私のために働いていません。 "ステートメントに1つ以上の無効な関数の引数が含まれています" 私はX1を取得していますが、X1、Y2、Y3、X2、 X2、Y1、Y3の値はクリックできません。 – onkar

+0

(X1 + X2)/ 2と(Y1 + Y2)/ 2の結果が整数かどうかを調べます。また、それが動作しない場合は、単にX1 + 5とY1 + 5をクリックし、それが動作するかどうかを確認することができます。 –

+1

ありがとうSumeet、それは働いた...以前私は10進数で座標を取得するために使用されました。 x1 + 5は私のために働いていません...もう一度ありがとう – onkar

関連する問題