2011-08-08 70 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