3

機能テストの自動化には、QTP と Webtest プラグインを使用します。私は DOM を制御できますが (簡単な方法ではありません)、VBScript と部分的に Javascript を使用して解決策を見つけることができます。

テスト中にエラーが発生するたびに、その時点で完全な HTML ページ ソースをキャプチャしたいと考えています。後で、レポートからエラーを調べているときに、何が起こったのか、その時点で DOM がどのように見えたかを確認できます。

したがって、このソースをキャプチャする可能性を探しています。通常、私は

htmlSource = browser("micClass:=Browser").page("micClass:=Page").Object.documentElement.outerHTML

また

htmlSource = browser("micClass:=Browser").page("micClass:=Page").Object.getElementsByTagName("html")(0).innerHTML

残念ながら、これはタグ、フレームセット、およびフレームの完全なコンテンツのみをキャプチャし、フレームにある実際のコンテンツはキャプチャしません。(IFrame ではなく、ここでは従来のフレーム)

ここで、フレームセット内のコンテンツを含む完全な DOM ソースをリアルタイムでキャプチャする方法が必要です。ソースが IE Developer Tool の HTML ビューに表示されるのと同じように、適切な順序と場所でそれらを配置したいと思います。

どうすればそれを管理できるか考えている人はいますか?

4

1 に答える 1

1

フレームのソースをページの HTML にインラインで配置する必要がある場合、これを実現する唯一の方法は、要素ごとに HTML を再帰的に構築することです。innerHTMLすべての要素について、子要素に移動する前に からを削除する必要があるためouterHTML(そしてそれらを正しく挿入する必要があるため)、これは大変な作業になる可能性があります。

フレームの HTML が外側にあることに耐えられる場合Page.ChildObjects()は、説明micclass=Frameを使用して、ページに使用したのと同じメカニズムを使用できます ( frames(i).Object.documentElement.outerHTML)。

ページの下にあるすべてのフレームを取得するのでFrame、フレームが DOM にネストされている場合でも、テスト オブジェクトの子オブジェクトを取得する必要はありません。

于 2012-09-13T09:40:55.387 に答える