QTP + VM:私は、リモートデスクトップ経由でVMに接続されていないよときはなぜクリックしてコマンドが実行されませんか?
-
19-09-2019 - |
質問
私は、Siebelアプリケーションをテストするために、VMwareと一緒にQTP 10を使用しています。 私は、[保存]ボタンをクリックし、次のコードを実行しています。
Browser("Siebel").Dialog("Filedownload").WinButton("Save").Click
私は、リモートデスクトップ経由でVMに接続されていたときにコードが完全に正常に動作します。
他の側では、私はリモートデスクトップ接続を有することなく、スケジューラを介しQTPテストを始めている場合、上記のコードはエラーメッセージなしで失敗します。 WinButtonは、単にクリックされていません。
任意のアイデア?
解決
ただ、私の経験から追加します。
私はスクリーンセーバーやセキュリティポリシーのためにスタンバイ設定を変更することができませんでした私のために働いていたいくつかの企業で。 PCは、(本当に大きなレポートを生成するように)長い同期期間中にスクリーンセーバーを育てた、および実行が壊れていた。
私は少し5分ごとにマウスを「動かす」シンプル「アンチスリープ」機能を作成することを避けるために。 http://automation-beyond.com/2009/08/18 /抗スリープ機能/ の
Private Const SleepTime_Max = 300 ‘ 5 minutes
Public Function AntiSleep()
Dim iter
Dim objTimer
Dim objDeviceReplay
Dim intTimeElapsed
Set objTimer = MercuryTimers(“AntiSleep”)
intTimeElapsed = CInt(objTimer.ElapsedTime/1000)
If intTimeElapsed = 0 Then
MercuryTimers(“AntiSleep”).Start
Exit Function
End If
If intTimeElapsed < SleepTime_Max Then
Exit Function
End If
Set objDeviceReplay = CreateObject(“Mercury.DeviceReplay”)
For iter = 100 To 110
objDeviceReplay.MouseMove iter,300
Next
MercuryTimers(“AntiSleep”).Start
Set objDeviceReplay = Nothing
End Function
カスタム同期機能でそれを使用しての例: http://automation-beyond.com/2009 / 8月20日/ GUIオブジェクト同期-カスタム機能/ の
は、ありがとう アルバートGareev
他のヒント
QTPは、対話的にローカルまたはRDP経由でログインしたときに、それはあなただけのために働くだろう理由です、ロックされたデスクトップと対話することはできません。それはほとんどのオートメーション・エンジニアはいくつかの点で、この痛みを通過、QTPのよく知られた制限です。 :)
具体的には、それはWin32のオブジェクト(それを置くことのより良い方法を考えることはできません)と対話することはできませんので、それはロックされたデスクトップ上の基本的なブラウザコントロール問題はないとの対話ますが、ブラウザのポップアップとWindowsアプリケーションは、これらの状況でと相互作用することはできません。
(お使いのシステムポリシーが許可した場合)私は強くあなたが UltraVNCののようなものや、他のVNCバリアントをインストールすることをお勧めしますあなたのリモートマシンと対話します。そうすれば、あなたは、リモートマシンのデスクトップを常時オンとアクティブログイン残すことができます。それはどちらかあなたのすべての主要なセキュリティ上の問題を引き起こすべきではないVMですので。あなたが任意のスクリーンセーバーをオフにして、あまりにもデスクトップを自動的にロックしないことを確認してください。あなたがそれを行う場合はQTPはあなたのためにうまく動作するはずです。