QTP を使用しているときに Web ページ全体をキャプチャする方法は? スクリーンショットの「CaptureBitmap」メソッドを認識しています。しかし、ページ全体をキャプチャする方法は? ヘルプ !!
5 に答える
何をキャプチャしたいですか?HTML の場合は、Page
テスト オブジェクトにチェックポイントを作成し、 HTML 検証セクションのHTML ソースチェックボックスをオンにします。
ページの画像をキャプチャしたい場合CaptureBitmap
は、スクロールして複数のキャプチャを使用しない限り、スクロールアウトされた部分の画像を取得する方法がなく、表示されている部分のみをキャプチャできます。
私は多くのサーフィンを経験しましたが、正しい答えを得ることができなかったか、私のオフィスでのサードパーティ API の使用の制限のために見つけたものを実装できませんでした。ドット ネット ファクトリを使用することで、ドット ネット ライブラリを使用してスクリーン ショットを取得し、それらをマージできます。完全なコードについては、以下のページを参照してください
http://www.testbasket.com/2015/08/capture-whole-web-page-using-uftqtp.html
ただし、ここではページの内容を貼り付けて、お役に立てば幸いです。
完全なページのスクリーンショットを撮るために、DotNetFactory と System.Drawing ドット ネット ライブラリを使用しました。
一歩一歩、解決に向けて進んでいきましょう。
ソリューションの実装の一環として、ページ全体の高さと重量を取得する必要があります。それを取得するには、.object メソッドを使用してページの DOM を使用します。
#Get the Full Height of Page
FullHeight = Browser("Wikipedia, the free encycloped").Object.document.body.scrollheight
#Get the Full width of Page
Fullwidth = Browser("Wikipedia, the free encycloped").Object.document.body.scrollwidth
完全なページ サイズを見つけたら、クライアント サイズ (ブラウザーが表示できるサイズ) を見つける必要があります。
#Get the visible height - Viewable part of the page
BrowserHeight = Browser("Wikipedia, the free encycloped").Object.document.body.clientHeight
#Get the visible width - Viewable part of the page
Browserwidth = Browser("Wikipedia, the free encycloped").Object.document.body.clientwidth
次に、Dot Net Factory を使用して必要なドット ネット ライブラリをインポートする必要があります。
Set oGraphics=DotNetFactory.CreateInstance("System.Drawing.Graphics")
Set oPoint=DotNetFactory.CreateInstance("System.Drawing.Point")
Set oImgFormat=DotNetFactory.CreateInstance("System.Drawing.Imaging.ImageFormat","System.Drawing", Nothing)
Set oImageLib = DotNetFactory.CreateInstance("System.Drawing.Image")
Set oPens=DotNetFactory.CreateInstance("System.Drawing.Pens","System.Drawing")
最後のステップとして、ページをループしてスクリーンプリントを個別に取得する必要があります。最後に Dotnet ライブラリを使用して、グラフィックスを使用して画像をマージします。描画方法。実装は簡単です。コードの完全なセットは、参照用に上記のリンクで入手できます。
CaptureBitmap を使用するのではなく、QTP の実行設定を切り替えることで、フル スクリーン ショットを取得できます。QTP に、常にスクリーン ショットを撮り、キャプチャしたいページ (またはオブジェクト) と対話するように指示できます (例: .Exist(0) を呼び出す)。これにより、結果にスクリーン ショットがフィードされます。
これを行うコード:
Dim App 'As Application
Set App = CreateObject("QuickTest.Application")
App.Options.Run.ImageCaptureForTestResults = "Always"
Browser("index:=0").Page("index:=0").sync
App.Options.Run.ImageCaptureForTestResults = "OnError"
技術的には、これは html をキャプチャし、ブラウザの html 表示の実際の画像ではなく、実行結果でこれをユーザーに表示しているようです。それでも、これは、ページに何が表示されていても、表示されていないものを見ることができることを意味します。
を使用しBrowser("").Capturebitmap
ます。
これにより、表示されているブラウザのスクリーンショットが取得されます。sendkeys メソッドを使用してページダウンを行い、Browser("").Capturebitmap
もう一度使用してください!
ページ全体の 1 つのスクリーンショットが必要な場合は、SnagItを使用してみてください。
操作方法の詳細が記載された便利な PDF があります ( http://download.techsmith.com/snagit/docs/comserver/enu/snagitcom.pdf ) 。
QTP では、次のようになります。
Sub Capture_Scroll_Image ()
Set objShell = CreateObject("WScript.Shell")
Set oSnag = CreateObject("SNAGIT.ImageCapture")
oSnag.IncludeCursor = False
oSnag.OutputImageFile.FileType = 5
oSnag.OutputImageFile.FileNamingMethod = 1
oSnag.OutputImageFile.Directory = "C:\Screens\"
oSnag.OutputImageFile.Filename = "Name"
oSnag.EnablePreviewWindow = False
oSnag.AutoScrollOptions.AutoScrollMethod= 1
oSnag.Capture()
Wait (1)
objShell.SendKeys "{ENTER}"
capDone = oSnag.IsCaptureDone
Do Until oSnag.IsCaptureDone
Loop
Set oSnag=Nothing
Set objShell=NothingEnd Sub
End Sub