我想对我的测试应用程序中的对象执行右键单击,但我无法执行此操作。有什么方法可以使用sendkeys来做到这一点吗?
在 Web 中,如果
RightClick
操作未达到预期结果,这可能是因为 UFT 未触发浏览器期望的事件序列。您可以告诉 UFT 使用设备重放来运行 Web 测试,在这种情况下,它会将鼠标光标移动到正确的位置并模拟实际的鼠标单击(包括右键单击)。
请参阅此答案,或者只需执行以下操作:
Setting.WebPackage("ReplayType") = 2 ' change to device replay mode
' Perform your right-click here
Setting.WebPackage("ReplayType") = 1 ' back to normal
您可以通过两种方式做到这一点。
1) 通过 Object.Click
像 ObjSomeObject.Click 1,1,micRightButton
2) 通过 Mercury 设备重播
为此获取 abs_x 和 abs_y,Height,Width 属性。计算它们并导出 intDerivedxLocation AND intDerivedxLocation。然后执行以下操作
intabsX = objApp.getRoProperty(“abs_x”)
intabsY = objApp.getRoProperty(“abs_y”)
intHeight = objApp.getRoProperty(“高度”)
intWidth = objApp.getRoProperty(“宽度”)
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";