2

QTP を使用してフライアウト メニューのアクションをトリガーするアイデアを探しています。

QTP を使用して Web アプリをテストしています。アプリケーションには、「カスケード」または階層的なフライアウト メニューがあります。

例えばOptions->Preferences

QTP の再コーディング中に、メニュー階層のエンドポイントが認識されます (「設定」など)。しかし、テストの実行中は、発火は WebElement("Preferences").Click機能しません。

それを呼び出すLink("Options").FireEvent ("onmouseover")と、メニューをプルダウンし、その後、設定項目を強調表示できますが、メニューをプルダウンした後でもクリックを呼び出すと、メニュー アクションのトリガーに失敗します。

これらのメニュー項目でクリック アクションをトリガーするアイデアは役に立ちます。

よろしく、
アダルシャ

4

5 に答える 5

5

が機能しない場合Clickは、QTP によってシミュレートされていない、Web アプリが予期している他のイベントが存在する可能性があります。これを回避する 1 つの方法は、Web のデバイス再生モードをオンにすることです。

Setting.WebPackage("ReplayType") = 2 

テストのこの行の後、QTP がClickステップを検出するたびに、要素の上にマウスを移動してクリックをシミュレートすることでステップを再生し、人間によって発生したすべてのイベントが発生します。

1 に設定されたデフォルトのイベント再生モードに戻るには"ReplayType"

于 2009-09-21T18:06:37.240 に答える
2

QTPの実行中にマルチタスクが失われるという理由で、私はMottiの提案を実装しませんでした。そのため、私はHTMLコードを調べて、Javaスクリプトで予期されるマウスイベントを確認することになりました。以下のシーケンスを呼び出す必要があることがわかりました。

Link("Options").FireEvent ("onmouseover")
WebElement("Preferences").FireEvent ("onmouseover")
WebElement("Preferences").FireEvent ("onClick")

This trick works really nice, but the risk here is if they change any thing drastically (say instaed of litening to Click if they use onMouseDown) I need to tweak the test script.

于 2009-09-27T02:32:23.283 に答える
1

もう1つのオプションがあります。これを使用して任意のオブジェクトをクリックします。

Set objMenu = Browser("Browser").Page("Pagel").WebElement("Menu_ELM")
Set objDeviceReplay1 = CreateObject("mercury.devicereplay")
x = objMenu.GetROProperty("abs_x")
y = objMenu.GetROProperty("abs_y")
objDeviceReplay1.MouseClick x + 35 , y + 5,0
Set objDeviceReplay1 = Nothing
于 2010-12-13T19:48:49.763 に答える
0

同様の状況をわずかに異なる方法で処理しました。最初に親リンクをクリックしてから 、序数識別子の助けを借りOptionsてfireeventをトリガーしますonclick

eg: browser().page().link(options).click

browser().page().link("name:=preferences","html tag:=A","index:=X").firevent "onclick"

これは理想的には意図した親リンクをロードし、クリック時に発火イベントをトリガーするのに役立ちます-これが役立つことを願っています.

于 2015-10-05T10:41:25.343 に答える
0

同様の問題で私がしたことは次のとおりです。

Set desPrefLink = Description.Create
    desPrefLink("micclass").value = "Link"
    desPrefLink("innertext").value = "Preferences"

Browser(X).Page(Y).Link(desPrefLink).Click()

ただし、より動的な Javascript メニューでは機能しない可能性があります。

于 2010-07-20T21:13:54.593 に答える