51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1688|回复: 10
打印 上一主题 下一主题

[原创] 菜鸟: qtp 使用onmouseover事件后,不能成功回放

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-11-23 19:57:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sisi20151123 于 2015-11-23 20:03 编辑

用qtp11.5录制脚本,场景为:
1.打开百度主页
2.鼠标悬停到"设置"
3.点击下拉菜单项:搜索设置
4.点击"保存设置"
5.点击"OK"
录制的脚本为:
Setting.WebPackage("ReplayType") = 2
wait 5
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("更多产品").FireEvent "onmouseover"
wait 1
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("搜索设置").Click
Wait 2
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("保存设置").Click
Browser("百度一下,你就知道").Dialog("Message from webpage").WinButton("OK").Click

回放现象:
脚本运行到3行,鼠标悬停到"设置"上的下拉菜单不出现(就是一个箭头+转动的小圈显示在页面上),提示为找不到"搜索设置"对象,没发执行下面的步骤
哪位大侠能指导一下!谢谢

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2015-11-24 10:34:07 | 只看该作者
    你的搜索设置应该在设置链接下吧。。。。 应该是这样吧

    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("设置").FireEvent "onmouseover"
    wait 1
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("搜索设置").Click
    Wait 2
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("保存设置").Click
    Browser("百度一下,你就知道").Dialog("Message from webpage").WinButton("OK").Click

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 恭喜你获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-2-4 09:49
  • 签到天数: 145 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2015-11-24 10:43:31 | 只看该作者
    systemutil.Run  "iexplore.exe","http://www.baidu.com"
    browser("百度一下,你就知道").Sync
    browser("百度一下,你就知道").Page("百度一下,你就知道").Link("设置").FireEvent "onmouseover"
    browser("百度一下,你就知道").Page("百度一下,你就知道").Link("outertext:=搜索设置","index:=1").Click 'index=0 也可

    对象库里就有个brwoser,page和设置的link。



    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2015-11-24 10:49:21 | 只看该作者
    joykao 发表于 2015-11-24 10:34
    你的搜索设置应该在设置链接下吧。。。。 应该是这样吧

    Browser("百度一下,你就知道").Page("百度一 ...

    您好,感谢回复,这个我也不知道怎么回事,我用spy抓取的时候,在"设置"那个位置就是抓出来的"更多产品"的链接,我用的IE11
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2015-11-24 10:55:04 | 只看该作者
    本帖最后由 sisi20151123 于 2015-11-24 10:57 编辑
    shanfeng1419 发表于 2015-11-24 10:43
    systemutil.Run  "iexplore.exe","http://www.baidu.com"
    browser("百度一下,你就知道").Sync
    browser(" ...

    您好,感谢回复。
    现在有一个问题,在执行这一步的时候:browser("百度一下,你就知道").Page("百度一下,你就知道").Link("设置").FireEvent "onmouseover" ,我用spy抓“设置”对象的时候,实际是抓的是"更多产品"对象,所以您看我的脚本,实际情况是在这一步好像都没生效,鼠标悬停在"设置"对象的时候悬停菜单没有出现,导致QTP找不到悬停菜单的子菜单"搜索设置",没办法执行下一步,我用的是IE11
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    6#
    发表于 2015-11-24 11:03:15 | 只看该作者
    检查下你的IE是不是缩放了,打开IE按下Ctrl+0,是零不是哦,如果没缩放,请打开对象库,然后检查对象库中是否有设置这个链接,如果没有手工添加下然后应该就没问题了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2015-11-24 12:39:10 | 只看该作者
    joykao 发表于 2015-11-24 11:03
    检查下你的IE是不是缩放了,打开IE按下Ctrl+0,是零不是哦,如果没缩放,请打开对象库,然后检查对象库中是 ...

    啊,就是这个原因,现在问题已经得到解决,谢谢大侠
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    8#
    发表于 2015-11-24 13:29:21 | 只看该作者
    sisi20151123 发表于 2015-11-24 12:39
    啊,就是这个原因,现在问题已经得到解决,谢谢大侠

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2015-11-24 14:04:26 | 只看该作者

    Hello啊,我刚又试了几次,有一次成功了,貌似问题还是出现在
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("设置").FireEvent "onmouseover"这一步,是不是onmouseover在IE上的支持不好啊,只能有很少的机会能成功,我说的成功就是鼠标悬停能显示悬停菜单,好奇怪啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2015-11-24 18:19:13 | 只看该作者
    Hello啊,捯饬了一个下午,发现onmouseover这个事件不是每次都能生效,所以我加了个流程控制,大概的思路是:现在"设置"上onmouseover,如果不能触发悬停菜单,就将鼠标移动到"视频"上,然后再鼠标悬停"设置"上,如此循环,直到"设置"上的悬停菜单出现,执行点击"搜索设置"的操作,代码如下:
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Sync
    Setting.WebPackage("ReplayType") = 2
    Dim Bc
    Bc=False
    public function Bclick()
    do while Bc=False

    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("设置").FireEvent "onmouseover"
    Bc=browser("百度一下,你就知道").Page("百度一下,你就知道").Link("outertext:=搜索设置","index:=1").Exist

    If(Bc=true) Then
    ExitActionIteration("OK")
    Else
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("视频").FireEvent "onmouseover"

    End if

    LOOP

    End function

    Call Bclick()

    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("搜索设置").Click
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("保存设置").Click
    Browser("百度一下,你就知道").Dialog("Message from webpage").WinButton("OK").Click

    贴出来供大家学习讨论,不足之处还望大侠们不吝指教!
    谢谢已经回复此贴的三位大侠,给了我很多提示和信息
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-30 00:04 , Processed in 0.071559 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表