【问题标题】:QTP: HTML Tag is recognized, but click function does not have responseQTP:HTML标签被识别,但点击功能没有响应
【发布时间】:2014-01-01 02:08:39
【问题描述】:

在 QTP11 中,我有如下功能来处理下拉列表按钮。 HTML结构如下:

子 FindDropdown(文本) ' 获取页面和文本作为参数 计数器 = 0

Set oDesc = Description.Create()
oDesc("html tag").Value = "tr"
Set trContent = Browser("Change Management - SAP").Page("Change Management - SAP").ChildObjects(oDesc)
TRSum = trContent.Count()

For i = 0 To TRSum - 1
    Set objPage = trContent(i).Object
    Set objTag = objPage.GetElementsByTagName("td") 
    spanSum = objTag.Length - 1

    For intCtr = 0 to spanSum
            strLink = objTag(intCtr).InnerText
            If strLink = text Then
                 trContent(i).Object.click()
            End If 
     Next   
Next
Set  oDesc=nothing

End Sub

虽然我已经测试过,并且可以识别带有内部元素的 Select All,但我无法执行操作(例如单击),实际上,代码: trContent(i).Object.click() 好像没有效果。

这与侦听器/事件处理程序的位置有什么关系吗?比如监听器是不是TR或者TD元素?

【问题讨论】:

    标签: testing qtp testautomationfx


    【解决方案1】:

    我一共尝试了四种方法来触发点击事件监听器: 1、QTP识别: 只需使用对象存储库中包含的 TO,然后 .click 即可触发单击侦听器。没有反应; 2. 使用 SendKeys 方法: 它在这个动作中起作用,而当我从我的主要动作中调用动作时,它不起作用; 3.使用DOM调用: 就像上面问题中的脚本一样,我无法触发点击处理程序;

    最后,我转向了 devicereplay。这个想法得到元素的运行时位置,然后点击那个位置。这在某种程度上是低级功能,对我来说它运行顺利。 这是我的工作脚本:

    Set objReleaseTR = Browser("Change Management - SAP").Page("Change Management - SAP_3").WebElement("Release all Transport")
    
    Set objDeviceReplay = CreateObject("mercury.devicereplay")
    
    x = objReleaseTR.GetROProperty("abs_x")
    y = objReleaseTR.GetROProperty("abs_y")
    
    objDeviceReplay.MouseClick x + 5, y + 5, 0
    
    Set objDeviceReplay = nothing
    

    希望这对遇到同样问题的人有所帮助。

    【讨论】:

    • 一个更简单的解决方案是change the replay type to device,然后单击测试对象。
    • 感谢 Motti 的帮助,是的,这是一种仅更改 QTP 重放类型的变通方法。
    【解决方案2】:

    首先验证您是否附加了点击侦听器。它是必需的。

    你可以试试下面的代码 trContent(i).Object.FireEvent("onclick")

    【讨论】:

    • 感谢 MansoorShaikh :),虽然这仍然行不通,但事件监听器可能不在 TR 或 SPAN 上,我会向开发人员咨询更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 2022-01-06
    相关资源
    最近更新 更多