我想知道是否可以模拟过程:右键单击图像 - >点击弹出菜单上的“将图像另存为...” - >将图像保存在本地。
我尝试了CaptureBitmap()函数,但结果只是QTP拍摄的截图,而不是与上面的过程相同的图像文件。
还有其他方法吗?非常感谢提前。
阿伦
答案 0 :(得分: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
然后将字母 v 发送到浏览器,该浏览器将使用device replay object
选择Save
菜单项(在IE和Firefox上)
Set deviceReplay = CreateObject( “Mercury.DeviceReplay” )
deviceReplay.SendString "v"
现在与保存对话框进行交互,作为通常的Win32控件。
道德:永远不要低估QTP如果你努力尝试会让你做什么