51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7501|回复: 19
打印 上一主题 下一主题

[原创] QTP下拉框的选项是变化的,如何才能让QTP选中选项

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-1-14 09:49:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[img][img]。
图中下拉框中的选择是根据我输入的内容匹配出来的。图中下拉框中的选择是根据我输入的内容匹配出来的。

如果是手动输入351672,下拉框中会显示出“李泉鑫”的选项

在QTP中我使用SET方法给它赋值“351672”后,但是下拉框的内容无法显示出来,也就无法选择选项了

我还将下拉框中的“李泉鑫”对象加入到对象库中,然后再加一个选择“李泉鑫”的步骤,还是解决不了问题
!!!
大侠们像这种问题要怎么解决啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

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

使用道具 举报

该用户从未签到

2#
发表于 2011-1-14 10:03:35 | 只看该作者
用一个比较笨的方法。。先点击定位到输入框;然后再用模拟键盘的方法输入;然后在点击显示出来的列表。。这样应该可以解决下拉框弹不出的情况。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-1-14 10:07:05 | 只看该作者
不从下拉框选择,直接把完整值设置给对象行吗?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    4#
    发表于 2011-1-14 10:16:40 | 只看该作者
    LZ, 这个控件用spy看到的是啥属性啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2011-1-14 10:27:22 | 只看该作者
    回复 2# wugecat


       我之前也有想过这种方法,但是不知道怎么把光标定位在输入框中!有用过object.SetCaretPos,但系统会报错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2011-1-14 10:28:46 | 只看该作者
    回复 3# gztester


        不行哦。 这个控件一定得把下拉中的内容选中一下才能被系统识别
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2011-1-14 10:33:38 | 只看该作者
    回复 4# shingo0109


        有两种属性一种是WebElement,另外一种是WebEdit见图中

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2011-1-14 10:43:25 | 只看该作者
    回复  wugecat


       我之前也有想过这种方法,但是不知道怎么把光标定位在输入框中!有用过object.SetC ...
    quanxinli 发表于 2011-1-14 10:27


    Browser("XXX").Page("XXX").WebEdit("WebEdit").FireEvent "onfocus"
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    9#
    发表于 2011-1-14 10:51:28 | 只看该作者
    用obj.WebEdit("xxxxxx").FireEvent("onfocus")
    之后再用模拟键盘的方法去选下拉框, 不知行不行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    10#
    发表于 2011-1-14 10:57:57 | 只看该作者
    找了个类似的控件试了下可以选择到, LZ试试吧
    Set obj =Browser("xxxxxx").Page("xxxxxx")
    obj.WebEdit("xxxxxx").Set "Write"
    obj.WebEdit("xxxxxx").FireEvent("onfocus")
    Set wshShell=CreateObject("WScript.Shell")
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{ENTER}"

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2011-1-14 12:55:20 | 只看该作者
    回复 10# shingo0109


        我用你的方法试了一下。发现鼠标事件QTP没有写到程序中。也是说351没有写到程序中,是不是使用WScript.shell要先设置什么呢
    Browser("BOSS").Page("BOSS").WebEdit("WebEdit").FireEvent "onfocus"

    Dim wshShell
    Set wshShell=CreateObject("WScript.Shell")
    wshShell.SendKeys "3"
    wshShell.SendKeys "5"
    wshShell.SendKeys "1"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{ENTER}"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2011-1-14 12:57:49 | 只看该作者
    回复 8# wugecat


        这种方法是可以定位了,但是键盘事情,QTP还是没有执行哦。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    13#
    发表于 2011-1-14 13:13:53 | 只看该作者
    回复 11# quanxinli


        应该不用设置啥吧
    要不你可以先对WebEdit进行Set “351”, 然后再focus
    Browser("BOSS").Page("BOSS").WebEdit("WebEdit").Set "351"
    之后看你的下拉框选项是通过按Down键还是Enter键来显示出来的, 你就再用sendkey来模拟按键, 我举的那个控件就是输入值之后, 按Down键可以显示出下拉选项的, LZ再试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2011-1-14 14:02:39 | 只看该作者
    回复 13# shingo0109


        还是执行这行wshShell.SendKeys  "{DOWN}"时,QTP没有执行DOWN。查网上资料也看不到怎么解决,我的系统B/S系统的,用PHP语言开发的。搞不懂为什么会这样?
    Browser("BOSS").Page("BOSS").WebEdit("WebEdit").FireEvent "onfocus"
    Browser(" BOSS").Page("BOSS").WebEdit("WebEdit").set "351"

    Browser(" BOSS").Page("BOSS").Image("s").Click
    Dim wshShell
    Set wshShell=CreateObject("WScript.Shell")
    'wshShell.SendKeys "3"
    'wshShell.SendKeys "5"
    'wshShell.SendKeys "1"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{DOWN}"
    wshShell.SendKeys  "{ENTER}"
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    15#
    发表于 2011-1-14 15:13:58 | 只看该作者
    回复 14# quanxinli


        我的意思是先Set "351"之后再FireEvent "onfocus", 然后再sendkeys {"Down"}, 不行的话期待别人的答案了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2011-1-14 15:28:18 | 只看该作者
    回复  wugecat


        这种方法是可以定位了,但是键盘事情,QTP还是没有执行哦。
    quanxinli 发表于 2011-1-14 12:57



        因为执行的太快了,在FireEvent "onfocus"后面加等待时间 wait 5 然后在进行键盘操作就可以了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2011-1-21 18:50:22 | 只看该作者
    回复 16# wugecat


        还是不能解决哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2011-1-26 19:57:42 | 只看该作者
    本帖最后由 jifeng 于 2011-1-26 20:01 编辑

    将对象放到对象库肯定是不行的。
    网上找一下处理ajax的对象识别方法,你这个处理方式应该类似。

    思路,激活下拉列表后(估计不是标准的list)再创建这个下拉列表的对象并返回,再对这个对象进行click处理就没问题了。

    你的下拉列表由于是模糊匹配出来的,每次出来的和你对象库中的肯定是不一样的。
    ‘下拉列表的描述信息
    Set MyPSTN = Description.Create()
    MyPSTN("micclass").Value = "WebElement"
    MyPSTN("id").Value = "text85Span"
    MyPSTN("class").Value = "star"
    MyPSTN("html tag").Value = "span"

    set MyPSTNObj=Browser("登录").Page("管理界面").ChildObjects(MyPSTN)’返回下拉列表对象


    MyPSTNObj(1).click   '点击选择下拉列表的某一项
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2011-1-30 22:34:01 | 只看该作者
    回复 18# jifeng

    谢谢哦!!!我最后叫开发人员改一下控件的方法,现在问题已经解决了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2015-4-16 15:54:34 | 只看该作者
    怎么解决的,能否告知下呀
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 20:40 , Processed in 0.082964 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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