我正在学习HP UFT。
最近,我遇到了fireevent
,并尝试在Flipkart的网站上实现它。我试图将firevent("onmouseover")
用作网站主页上的链接Men
。
我使用ChildObjects
查找链接和WebElement(在两个不同的测试中),首先将其突出显示,然后使用object.fireevent("onmouseover")
和object.fireevent("OnClick")
。 OnClick
正常工作,它显示了选中的链接(即,当我们按Tab键时,覆盖链接的虚线框),但未显示“男人下的菜单”部分。
我用谷歌搜索了很多。但是无法在QTP / UFT中找到FireEvent的确切工作。
请帮助我解决上述问题以及有关FireEvent的一些教程。
编辑:我正在使用IE 11进行测试。
最佳答案
Motti已经回答了技术定义,但是我将尝试为您解决功能性问题。
根据我的经验,.FireEvent
通常无法正常工作。 onmouseover
之类的替代方法是通过将鼠标实际移动到所需位置来更加紧密地模拟用户行为。在我们的框架中,我们有一个扩展功能可以做到这一点,此处显示了其简化版本:
Sub My_MouseOver(objSender)
Dim absX : absX = objSender.GetROProperty("abs_x")
Dim absY : absY = objSender.GetROProperty("abs_y")
Dim width : width = objSender.GetROProperty("width")
Dim height : height = objSender.GetROProperty("height")
Dim x : x = (absX + (width / 2))
Dim y : y = (absY + (height / 2))
Dim deviceReplay : Set deviceReplay = CreateObject("Mercury.DeviceReplay")
deviceReplay.MouseMove x, y
Reporter.ReportEvent micDone, "A step name", "A useful step description"
End Sub
RegisterUserFunc "Link", "MouseOver", "My_MouseOver"
RegisterUserFunc "WebButton", "MouseOver", "My_MouseOver"
RegisterUserFunc "WebElement", "MouseOver", "My_MouseOver"
例如,您可以执行以下操作,在flipkart.com上显示“电子”菜单叠加图(显然替换您自己的
Browser
和Page
定义):Browser("Flipkart").Page("Main Nav").Link("xpath:=//a[@data-tracking-id='electronics']").MouseOver
在原始版本中,错误处理和自定义报告有很多额外的地方,因此它可以告诉您所单击的内容,但本质是相同的。它在屏幕上找到对象,计算中心并将鼠标移到那里。在新显示的子元素之一上调用
.Click
之前,您可能需要等待一小段时间以使菜单覆盖显示。