2017-07-04 3 views
1

UFT/QTPを使用してWebアプリケーションを自動化しています。問題は、UFTがブラウザのウィンドウ部分に表示されているWebオブジェクトでのみ動作することです。任意のオブジェクト/要素がページの下部にあり、ウィンドウ内でスクロールダウンする必要があります。 UFTはこれらのオブジェクトで作業することはできません。これらのオブジェクトを操作するためにページを作成するコードを記述しました。それはうまく動作します。しかし、時にはページが非常に長く、そのオブジェクトがページの真ん中、またはページの最下部などのどの位置にあるのかわからないこともあります。その場合、ページダウンだけが機能しません。オブジェクトのプロパティに基づいてオブジェクトを表示させる方法はありますか?これは、ウィンドウの前にオブジェクトを持ち込むことができることを意味します。ブラウザウィンドウで目に見える場合にのみオブジェクトが識別されます - UFT

答えて

0

あなたのスクロールPAGEUPやPAGEDOWNコードがすでに動作している場合は、なぜあなたはループを使用していない...

Set obj = Browser(..).page(..).Link(..) ' use your object 

While obj.getROProperty("visible") = False 
    'Scroll code 
Wend 
+0

に設定されているデフォルトで

マウス実装されていますが、堅牢ではありません。非常に効果的な解決策です。ページダウンのために、オブジェクトがページの境界線に移動することがあります。その場合、時々動作するように動的に動作します。オブジェクトを直接見ることができるものを探しているようですが、それは不可能だと思われます。 – Shekhar

0

UFTは、オブジェクトがビューであるかどうかに依存しません。オブジェクトが表示外にスクロールされると、UFTは自動的にオブジェクトを表示してからアクションを実行します(例:Click)。

あなたが記述している動作は、ページがスクロールされたときにWebサイトがDOMにオブジェクトを動的に追加するという事実によって引き起こされる可能性があります。これが当てはまる場合、UFTはオブジェクトがDOMに追加される原因を知る方法がなく、実行していたオブジェクトをスクロールする必要があります。

私はより良いニュースを持って来ることができませんでした申し訳ありません:(

+0

あなたはそうです.. UFTは自動的にそれを行いますが、ここでは不幸な状況です。: – Shekhar

+0

オブジェクトプロパティを使用するのではなく、オブジェクトが視覚的にスキャンされる場合にも問題が発生する可能性があります。 –

0

私はかつて同様の問題に直面していました。私にとっては、が働いていたマウスイベントに設定Replaytypeを変更する。 は直前マウスイベントにReplayTypeを変更してみてください下図のように(オブジェクトをクリック言う)任意の操作を実行する:ReplayType上

Settings.WebPackage("ReplayType") = 2 'Changes to mouse/device events mode 
'Perform the Click Operation here 
Settings.WebPackage("ReplayType") = 1  'Change back to Browser events mode 

追加情報:

この設定では、マウス操作を にする必要があります。ブラウザーイベントまたはマウスイベントのいずれかになります。 ブラウザイベントは、ブラウザメソッドを使用するDOMイベントに似ています。 マウスイベントは、 キーボードまたはマウスからの実際のユーザーアクションをシミュレートします。たとえば、 ReplayTypeがマウスの場合、ボタンをクリックすると、マウスポインタが ボタンの位置に移動してイベントが発生しますが、ブラウザイベントの場合は には表示されません。 replaytypeの

可能な値は:

1 - イベント

2 - それは私たちが持っていた最終的な解決策だった。イベントすなわち1

+0

これは既にアプリケーションを使用しています。 – Shekhar

関連する問題