如何在UFT中使用SendKeys执行右键单击对象?

时间:2017-03-21 05:38:24

标签: object testing automation qtp sendkeys

我想对我的应用程序测试中的对象执行右键单击,但我无法执行此操作。有没有办法使用 sendkeys

3 个答案:

答案 0 :(得分:0)

在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 :(得分:0)

你可以用两种方式做到。

1)通过 Object.Click

喜欢ObjSomeObject.Click 1,1,micRightButton

2)通过 Mercury设备重播

对于此获取 abs_x abs_y 高度,宽度属性。计算它们并派生 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)

Dim objMercuryDeviceReplay

设置objMercuryDeviceReplay = CreateObject(" Mercury.DeviceReplay")

objMercuryDeviceReplay.MouseClick intDerivedxLocation,intDerivedxLocation,2

答案 2 :(得分:0)

键盘右键单击Shift + F10有一个快捷键。 如果我们通过发送密钥传递它,那么我们就可以做到这一点。在此之前,我们必须将鼠标悬停在该对象上,或者我们通过单击该对象使其处于活动状态。

例如

Browser().page().webelement().click;
Browser().page().webelement().sendkeys "+F10";