【发布时间】:2017-08-12 15:37:26
【问题描述】:
我想对我的被测应用程序中的对象执行右键单击,但我无法执行此操作。有什么方法可以使用 sendkeys 吗?
【问题讨论】:
-
你的 AUT 是什么技术?
-
我正在测试的应用程序在 Web 上
标签: object testing automation qtp sendkeys
我想对我的被测应用程序中的对象执行右键单击,但我无法执行此操作。有什么方法可以使用 sendkeys 吗?
【问题讨论】:
标签: object testing automation qtp sendkeys
在 Web 中,如果 RightClick 操作未达到预期结果,这可能是因为 UFT 未触发浏览器预期的事件序列。您可以告诉 UFT 使用设备重放运行 Web 测试,在这种情况下,它会将鼠标光标移动到正确的位置并模拟实际的鼠标单击(包括右键单击)。
查看this answer,或执行以下操作:
Setting.WebPackage("ReplayType") = 2 ' change to device replay mode
' Perform your right-click here
Setting.WebPackage("ReplayType") = 1 ' back to normal
【讨论】:
你可以通过两种方式做到这一点。
1) 通过Object.Click
like ObjSomeObject.Click 1,1,micRightButton
2) 通过 Mercury 设备回放
为此获取 abs_x 和 abs_y,Height,Width 属性。计算它们并导出 intDerivedxLocation 和 intDerivedxLocation。然后执行以下操作
intabsX = objApp.getRoProperty("abs_x")
intabsY = objApp.getRoProperty("abs_y")
intHeight = objApp.getRoProperty("height")
intWidth = objApp.getRoProperty("width")
intDerivedxLocation= Cint(intabsX) +Cint(intWidth /2)
intDerivedxLocation= Cint(intabsY) +Cint(intHeight/2)
调暗 objMercuryDeviceReplay
设置 objMercuryDeviceReplay= CreateObject("Mercury.DeviceReplay")
objMercuryDeviceReplay.MouseClick intDerivedxLocation, intDerivedxLocation, 2
【讨论】:
键盘右键单击 Shift+F10 有一个快捷键。 如果我们通过发送键传递它,那么我们就可以执行此操作。在执行此操作之前,我们必须将鼠标悬停在该对象上,或者通过单击该对象使其处于活动状态。
举例
Browser().page().webelement().click;
Browser().page().webelement().sendkeys "+F10";
【讨论】: