51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3932|回复: 17
打印 上一主题 下一主题

[原创] 无法识别录制的对象WebEdit,但用object spy获取的对象却是WebElement

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-17 11:40:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠麻烦帮忙看一下,这个问题困扰小妹几天了^_^

录制脚本的时候,获取的代码如下:
Browser(“111").Page("222").WebEdit("WebEdit").Set "A"
Browser("111").Page("222").WebEdit("WebEdit").Set "B"
回放时,运行到这里的第一行代码,系统就说识别不了对象(那是肯定的吧,因为两个WebEdit的name都一样)
然后我就用object spy去获取下这些对象的属性,
1。直接去获取时,属性如pic1,对象是属于WebElement
2。先用Ctrl点击编辑框,获取的对象属性如pic2,对象是属于WebEdit

我尝试过用描述编程去获取这些WebEdit,但运行时系统还是识别不了对象。
也尝过用WebTable中的childItem来set value,但还是不行

各位看看有啥高见指点指点,不胜感激^_^

[ 本帖最后由 玉月亭苇 于 2008-11-17 11:50 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2008-11-17 11:47:41 | 只看该作者
    QTP  报告说识别不了对象,那么你可以查看一下具体原因。既然,录制的时候是WebEdit("WebEdit"),那么应该问题不大。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-11-17 11:57:20 | 只看该作者
    我尝试用描述编程,用了很多属性,最后还是识别不了对象。
    不知道还有没有其他的方法。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2008-11-17 12:05:23 | 只看该作者
    set des=description.create()
    des("micclass").value="webedit"
    set Childs=Browser(“111").Page("222").chilsobjects(des)
    for Num= 0 to Childs-1
           Childs(Num).set "这地方在datatable中做个参数化,通过for 控制循环"
    next
    '只看了个大概具体小地方还要修改下,希望对你有帮助.

    [ 本帖最后由 lingxin5013 于 2008-11-17 12:08 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-11-17 13:54:04 | 只看该作者

    回复 4# 的帖子

    谢谢楼上~~

    但有个问题,用这种方法的话系统不会出现识别不了对象的错误,全部代码能运行下去,
    可问题出现在代码全部运行下去了,却没有起作用,就是说给WebEdit赋不了值,
    运行下来,WebEdit全部还是空的,一点变化也没有。
    请问这是什么原因啊???
    Set des=description.Create()
    des("micclass").Value ="WebEdit"
    Set cell= Browser("111").Page("222").ChildObjects(des)
    N= cell.Count()
    For i =0 to N-1
    cell(i).Set("A")  ‘为了简单点,我没有用datatable来赋值
    Next
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-11-17 14:40:16 | 只看该作者
    刚又debug了一下,N是有获取到值的,N的value 为2。
    但为什么for循环里的语句就是赋不了值呢??
    麻烦各位走过路过的,停停脚,帮帮忙啦~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-11-17 14:54:11 | 只看该作者
    Set des=description.Create()
    des("micclass").Value ="WebEdit"
    Set cell= Browser("111").Page("222").ChildObjects(des)
    N= cell.Count()
    For i =0 to N-1
    cell(i).click
    cell(i).Set("A")  ‘为了简单点,我没有用datatable来赋值
    Next
    '这样
    '这样看看可行了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-11-17 15:02:38 | 只看该作者

    回复 7# 的帖子

    还是不行,和前面一样,赋不了值。

    for循环里的语句每句都运行的好好的,也循环运行了两次,一切都是正常的,
    可就是起不了作用,不知道那个值赋到哪里去了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-11-17 15:07:34 | 只看该作者
    不会吧,是你那个有问题吧.我刚刚实验了下是没有问题的,可以通过啊,你在仔细看看.可能你程序问题.
    你随便找个注册页面,然后把代码重放下你看看,我运行是可以通过的.
    要不然你就有别的没有说清楚

    [ 本帖最后由 lingxin5013 于 2008-11-17 15:39 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-11-17 16:54:44 | 只看该作者
    如果不行的话,建议你使用映射把webelement映射为标准控键,这样肯定就可以了.
    要是不行我也没折了.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2008-11-17 17:29:05 | 只看该作者

    回复 10# 的帖子

    很感谢lingxin5013的热心指点啊,谢谢~~~

    可能是我没说清楚吧,你可以看看我上面发的那两个图,WebEdit是在table里面的,但是录制的时候,QTP却没有捕捉webTable,直接录制WebEdit。
    所以和你说的那些什么注册页面应该有所不同,而且注册页面那两个编辑框,无论怎么捕捉时它都是WebEdit,
    而我这里的情况是用object spy 直接捕捉对象时是WebElement,用Ctrl点击编辑框捕捉时才是WebEdit,
    你看看这里会不会有什么问题呢???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-11-17 17:34:46 | 只看该作者
    每次用Set前都模拟ctrl+点击的操作呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2008-11-17 17:36:43 | 只看该作者
    1:直接click那个webelement可以吗?不用ctrl
    2:如果不行就你先click下 ,你那个应该要激活在进行下面的操作.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2008-11-18 09:38:15 | 只看该作者

    回复 13# 的帖子

    呵呵,楼上的真聪明~~~
    现在如果在set前手工click一下那个webElement,让它的属性变成webEdit,然后接着运行set语句,就可以赋值成功~~

    现在有个问题是,有没有函数可以模拟手工click的。我试了一下你上面介绍的cell(i).click,不起作用,没有click到那个cell。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-11-18 10:42:50 | 只看该作者
    FireEvent
    描述: 触发事件。

    语法bject.FireEvent EventName, [x], [y], [BUTTON]

    参数 描述
    object 类型 WebElement 的测试对象。
    EventName 必填. String 值。 要触发的事件的名称。可用事件:onchange、onclick、ondblclick、onblur、onfocus、onmousedown、onmouseup、onmouseover、onmouseout、onsubmit、onreset、onpropertychange。  
    x 可选. Long 值。 相对于对象左上角的 X 坐标。  
    y 可选. Long 值。 相对于对象左上角的 Y 坐标。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-11-18 10:51:13 | 只看该作者
    LZ方便把页面的源代码发来看看么
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2008-11-18 12:12:57 | 只看该作者
    谢谢各位的热心指点啊,问题终于解决了,
    不过用得是比较笨的方法,就是每次在为WebEdit set值前,先将WebElement click一下,使其的属性变为WebEdit.
    Browser("111").Page("222").WebElement("WebResource").Click
    Browser("111").Page("222").WebEdit("WebEdit").Set"A"

    Browser("111").Page("222").WebElement("WebResource_2").Click
    Browser("111").Page("222").WebEdit("WebEdit").Set "B"

    再次感谢各位
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2008-11-18 17:54:36 | 只看该作者
    不管什么办法初期搞出来了就很好啊. 后期在改进就可以了.呵呵
    共同学习共同提高.
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-10-3 19:26 , Processed in 1.636941 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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