我想知道是否可以模拟该过程:右键单击图像 - >在弹出菜单上单击“保存图像为..” - >将图像保存到本地。QTP如何从网页保存图像
我试过CaptureBitmap()函数,但结果只是QTP所采用的截图,与上面的过程不同,得到的图像文件不一样。
还有其他方法吗?提前谢谢了。
艾伦
我想知道是否可以模拟该过程:右键单击图像 - >在弹出菜单上单击“保存图像为..” - >将图像保存到本地。QTP如何从网页保存图像
我试过CaptureBitmap()函数,但结果只是QTP所采用的截图,与上面的过程不同,得到的图像文件不一样。
还有其他方法吗?提前谢谢了。
艾伦
我想这取决于你想要做什么。如果你想比较位图,那么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
Set deviceReplay = CreateObject(“Mercury.DeviceReplay”)
deviceReplay.SendString "v"
现在与保存对话框作为交互寄信v到浏览器,这将选择Save
菜单项(在IE和Firefox浏览器)通常的Win32控制。
道德:永远不要低估什么QTP将让你做,如果你足够努力
感谢您的回答,我想我必须尝试wget。 – allenzzzxd
@allenzzzxd,难道你不想接受这个答案,直到你看到没有更好的事情出现吗? – Motti
恩,谢谢你的建议。我会等一会儿。但基于我对这个问题的研究,我几乎找不到任何帮助...... – allenzzzxd
艾伦,我又一想,请看看我的答案,看看它是否适合你。 – Motti