51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2066|回复: 9
打印 上一主题 下一主题

[原创] 采用X,Y来确定对象

[复制链接]
  • TA的每日心情
    开心
    2015-7-27 13:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2010-12-7 23:47:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    现在有5个WebEdit的属性完全一样,我要怎么来给每个对象中输入预计的值?
    是否可以通过坐标属性的属性来set,具体方法是什么样的呢?
    之前我也用过sendkey "TAB"来切换到其中一个输入框,并已经获取焦点,但是set时仍然会报错。。。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2010-12-8 10:38:05 | 只看该作者
    1. set 和焦点基本没关系,获取了焦点后用模拟输入是可以的
    2. 可以在上级对象取WebEdit子对象集合
    3. 可以附带类似 index属性来确认具体哪一个WebEdit (webcheckbox是肯定有index的,WebEdit 暂时没试过)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2010-12-8 12:14:12 | 只看该作者
    1、index属性
    2、获取焦点后使用SendKeys模拟键盘输入。
    Dim WshShell,Path,i
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.SendKeys "{F5}"

    详细出处参考:http://www.jb51.net/article/14776.htm
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2010-12-8 21:53:16 | 只看该作者
    应该不需要用到坐标定位的,应该可以用index区分开来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    5#
    发表于 2010-12-9 14:47:03 | 只看该作者
    那如果,输入框没做索引呢。怎么办。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-12-9 23:28:57 | 只看该作者
    这个 如果固定的话,可以使用 virtual object来做
    如果 使用qtp11.0 那么可以使用 参照对象来看看能不能区分开来
    当然 如果对index熟悉的话, 不妨试一试,
    我 对这个index不熟悉,另外最好贴图出来,这样才可以给大家更多信息
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    7#
    发表于 2010-12-10 10:18:21 | 只看该作者
    这样你先录制一下,然后到对象库里去看。qtp取了哪些属性和值。你用描述性编程写qtp里的属性就行了。

    只要qtp能录制,你取基本不会有问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-12-14 10:06:49 | 只看该作者
    上楼正解
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-12-14 15:13:21 | 只看该作者
    sendkeys “{TAB}”已经能获取焦点了
    为什么不继续用sendkeys 输入内容呢?而要用set来输入内容?
    set是基 ...
    five3 发表于 2010-12-13 23:22



        很有深度~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-12-16 11:29:56 | 只看该作者
    本帖最后由 wolaizhinidexin 于 2010-12-16 11:34 编辑

    这种情况我也遇到了,我遇到的是link
    下面给一个粗略的过程,你可能需要改改,但可以参考这种方法
    qtp10中
    beforWebEditObj:在webEdit上一层对象
    webEditProperty:WebEdit中的某个属性
    propertyValue:   WebEdit中的某个属性值
    indexWebEdit:    在webEdit上一层对象中的webEdit的第几个
    webEditValue:    所要设置的值

    Function setWebEdit(beforWebEditObj,webEditProperty,propertyValue,indexWebEdit,webEditValue)
    set thisPageWebEditObj=Description.Create()
          thisPageWebEditObj("misclass").Value="WebEdit"
          thisPageWebEditObj( webEditProperty).Value=propertyValue
         获得当前对象中所有webEdit的对象,
          set setWebEditObj=beforWebEditObj.ChildObjects(thisPageWebEditObj)
         cc= setWebEditObj.count
        if cc=0 then
    msgbox "没有找到"
       elseif cc>=1 then
    这里可以继续判断,据我观察,虽然这几个webedit都是相同的属性,但是一般说来他们的outerhtml往往存在某个关键字与其它有不同之处,我们可以利用这点,进行更深层次的判断,这样的话,我们就可以省略indexWebEdit参数的指定了。
          setWebEditObj(indexWebEdit).Set webEditValue
    end if
    End Function
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-7 19:25 , Processed in 0.069871 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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