2011-08-08 116 views
2

我想知道是否可以模擬該過程:右鍵單擊圖像 - >在彈出菜單上單擊「保存圖像爲..」 - >將圖像保存到本地。QTP如何從網頁保存圖像

我試過CaptureBitmap()函數,但結果只是QTP所採用的截圖,與上面的過程不同,得到的圖像文件不一樣。

還有其他方法嗎?提前謝謝了。

艾倫

+0

艾倫,我又一想,請看看我的答案,看看它是否適合你。 – Motti

回答

3

我想這取決於你想要做什麼。如果你想比較位圖,那麼CaptureBitmap選項應該工作。如果您想比較圖片的路徑,可以使用Image("x").GetROProperty("src")

如果你真的想保存src圖片文件,那麼不幸的是QTP並沒有提供一種與瀏覽器的上下文菜單進行交互的方式。您可以嘗試使用某種第三方機制從src網址下載圖片(例如wget)。


編輯:我只是又一想,我不是在工作,所以我無法驗證它工作,但我敢肯定它會。

首先導致上下文菜單出現,爲此,您必須將重放模式更改爲設備並運行RightClick操作。

replayType = Setting.WebPackage("ReplayType") ' Store old replay mode 
Setting.WebPackage("ReplayType") = 2 ' change to device replay mode 
Browser("b").Page("p").Image("I").RightClick 
Setting.WebPackage("ReplayType") = replayType ' Revert to old mode 

然後使用device replay object

Set deviceReplay = CreateObject(「Mercury.DeviceReplay」) 
deviceReplay.SendString "v" 

現在與保存對話框作爲交互寄信v到瀏覽器,這將選擇Save菜單項(在IE和Firefox瀏覽器)通常的Win32控制。

道德:永遠不要低估什麼QTP將讓你做,如果你足夠努力

+0

感謝您的回答,我想我必須嘗試wget。 – allenzzzxd

+0

@allenzzzxd,難道你不想接受這個答案,直到你看到沒有更好的事情出現嗎? – Motti

+0

恩,謝謝你的建議。我會等一會兒。但基於我對這個問題的研究,我幾乎找不到任何幫助...... – allenzzzxd