1

QTP を使用しているときに Web ページ全体をキャプチャする方法は? スクリーンショットの「CaptureBitmap」メソッドを認識しています。しかし、ページ全体をキャプチャする方法は? ヘルプ !!

4

5 に答える 5

1

何をキャプチャしたいですか?HTML の場合は、Pageテスト オブジェクトにチェックポイントを作成し、 HTML 検証セクションのHTML ソースチェックボックスをオンにします。

ページの画像をキャプチャしたい場合CaptureBitmapは、スクロールして複数のキャプチャを使用しない限り、スクロールアウトされた部分の画像を取得する方法がなく、表示されている部分のみをキャプチャできます。

于 2010-05-20T10:43:41.547 に答える
0

私は多くのサーフィンを経験しましたが、正しい答えを得ることができなかったか、私のオフィスでのサードパーティ 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 ライブラリを使用して、グラフィックスを使用して画像をマージします。描画方法。実装は簡単です。コードの完全なセットは、参照用に上記のリンクで入手できます。

于 2015-08-19T03:01:38.363 に答える
0

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 表示の実際の画像ではなく、実行結果でこれをユーザーに表示しているようです。それでも、これは、ページに何が表示されていても、表示されていないものを見ることができることを意味します。

于 2013-10-23T02:57:29.853 に答える
0

を使用しBrowser("").Capturebitmapます。

これにより、表示されているブラウザのスクリーンショットが取得されます。sendkeys メソッドを使用してページダウンを行い、Browser("").Capturebitmapもう一度使用してください!

于 2010-08-01T18:50:31.917 に答える
-1

ページ全体の 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
于 2010-08-06T14:05:41.557 に答える