51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] 在web里描述性编程的错误

 关闭 [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-11 12:43:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
dialog("text:=Login").winedit("nativeclass:=Edit","attached text:=Agent Name:")
这句是真确的,但在WEB中用相同的方法就不行了,下面是在WEB中的语句:
Browser("title:=极限网上商店系统(eWebShop)").Sync  这句话是对的
Browser("title:=极限网上商店系统(eWebShop)").link("nativeclass:=Link","innertext:=服装").click  这句话就错了,不知道错那里,是不是在
WEB里不能用"nativeclass:=Link"的吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-11 13:07:16 | 只看该作者
出什么错呢?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-7-11 15:01:38 | 只看该作者
找不到 link 这个对象
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-7-11 15:05:25 | 只看该作者
我试了下,nativeclass:=Link是可以的,代码如下:
Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("nativeclass:=Link", "innerText:=自由米毒舌影评 - 电影(变形金刚 2007)").Click
Browser("自由米毒舌影评 - 电影(变形金刚 2007)").Page("自由米毒舌影评 - 电影(变形金刚 2007)").Sync
Browser("自由米毒舌影评 - 电影(变形金刚 2007)").Close

但当我在代码中加了title后就报错了(请见附件图片),代码是这样的:
Browser("title:=土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("nativeclass:=Link", "innerText:=自由米毒舌影评 - 电影(变形金刚 2007)").Click
Browser("自由米毒舌影评 - 电影(变形金刚 2007)").Page("自由米毒舌影评 - 电影(变形金刚 2007)").Sync
Browser("自由米毒舌影评 - 电影(变形金刚 2007)").Close

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-11 15:10:50 | 只看该作者
应该是browser的title内容和page的title内容一样导致的吧
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-11 15:49:57 | 只看该作者
原帖由 gzj_06 于 2007-7-11 15:05 发表
我试了下,nativeclass:=Link是可以的,代码如下:
Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("nativeclass:=Link", "innerText:=自 ...




你这里报错是因为你Browser用了描述编程,而Page却没用描述编程,所以会出错啊.

建议LZ对Link换个属性来描述,试试用index
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-7-11 16:13:46 | 只看该作者
在对象里很少会出现 index 这个属性,请问这个属性是怎么来的啊?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-11 16:21:42 | 只看该作者
每一个对象都会有index这个属性的.

索引( index ):指示该对象在应用程序代码中相对于其他描述都相同的其他对象的显示顺序。
       QTP在录制和执行中,为测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在源代码中的显示顺序。第一个出现的是 0。注意, index属性值是特定于对象的。因此,如果使用 Index:=3 描述 WebEdit测试对象, QuickTest 将在页中搜索第四个 WebEdit 对象。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-7-11 16:39:18 | 只看该作者
谢谢 wtucel 你的解释,让我知道了index是什么了 再次感谢下
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-7-11 17:10:42 | 只看该作者

回复 #6 wtucel 的帖子

明白了,如果父对象是用描述性编程,那么下面的子对象应该都用描述性编程,如果父对象是通过对象库识别的,那么子对象两种方法均可,谢谢wtucel
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-7-18 21:42:54 | 只看该作者
支持!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-7-19 10:38:07 | 只看该作者
不是误导吧?想用描述编程就用描述编程,想不用就不用,不会因为她爹用了她就要用吧。。。。
我没试过,不过这言论看起来就感觉很幼稚。


原帖由 gzj_06 于 2007-7-11 17:10 发表
明白了,如果父对象是用描述性编程,那么下面的子对象应该都用描述性编程,如果父对象是通过对象库识别的,那么子对象两种方法均可,谢谢wtucel
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-7-19 14:24:59 | 只看该作者
原帖由 jackymail 于 2007-7-19 10:38 发表
不是误导吧?想用描述编程就用描述编程,想不用就不用,不会因为她爹用了她就要用吧。。。。
我没试过,不过这言论看起来就感觉很幼稚。




父对象是用描述性编程,那么下面的子对象应该都用描述性编程,前提是父对象在在对象库中不存在
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2007-7-19 15:49:41 | 只看该作者
原帖由 jackymail 于 2007-7-19 10:38 发表
不是误导吧?想用描述编程就用描述编程,想不用就不用,不会因为她爹用了她就要用吧。。。。
我没试过,不过这言论看起来就感觉很幼稚。


我发现你这人说话真是不怕得罪人啊,上次那个什么看到大家提问题的水平,有点不想再学QTP了的就是你吧,你不学就算了,还在这里到处打击人
我可是查看了QTP帮助之后才知道的,现在帖出来给你看看:(descriptive programming)
Note: When using programmatic descriptions from a specific point within a test object hierarchy, you must continue to use programmatic descriptions from that point onward within the same statement. If you specify a test object by its object repository name after other objects in the hierarchy have been specified using programmatic descriptions, QuickTest cannot identify the object.
同时还有3个例子,前两个是对的,后一个是错的,QTP不能识别:
1、Browser("Title:=Mercury Tours").Page("Title:=Mercury Tours").WebEdit("Name:=Author", "Index:=3").Set "Mark Twain"

2、Browser("Mercury Tours").Page("Title:=Mercury Tours").WebEdit("Name:=Author", "Index:=3").Set "Mark Twain"

3、Browser("Title:=Mercury Tours").Page("Title:=Mercury Tours").WebEdit("Author").Set "Mark Twain"
不能识别的原因:
QuickTest tries to locate the WebEdit object based on its name, but cannot locate it in the repository because the parent objects were specified using programmatic descriptions.
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-7-19 16:21:50 | 只看该作者

回复

原帖由 ybbiagu 于 2007-7-11 12:43 发表
dialog("text:=Login").winedit("nativeclass:=Edit","attached text:=Agent Name:")
这句是真确的,但在WEB中用相同的方法就不行了,下面是在WEB中的语句:
Browser("title:=极限网上商店系统(eWebShop)").Sync ...

  觉得事情应该是这样的,我以前无论是录制还是描诉的话都是browser->page->link(当然可以是link也可以是别的),所以觉得网页的构架是不是如果要确认一个link之类对象一定要至少先定位browser与page可是在楼主的那句出错的话中从browser一下子就定位到link了。事实是browser下只有page当然无法找到这个对象所以才报找不到对象吧。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2007-7-19 16:35:06 | 只看该作者

回复

父对象是用描述性编程,那么下面的子对象应该都用描述性编程,前提是父对象在在对象库中不存在
===============================================
  这个我恐怕有些不同的观点,就算父对象其实在对象库是存在的,但是它使用描述性编程表示,那么它的下层的那些对象也应该用描述性编程,否则一样识别不到
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-7-19 17:18:54 | 只看该作者
行了,我看了,是你说的那个意思,满意不?


你懂什么叫lboring吗,你说的话就是。你不能阻止别人个性的存在,虽然的确我说话不厚道,可是,,唉,小孩一个,不跟你多说。





原帖由 gzj_06 于 2007-7-19 15:49 发表
我发现你这人说话真是不怕得罪人啊,上次那个什么看到大家提问题的水平,有点不想再学QTP了的就是你吧,你不学就算了,还在这里到处打击人
我可是查看了QTP帮助之后才知道的,现在帖出来给你看看:(descriptiv ...
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    18#
    发表于 2007-7-19 23:20:46 | 只看该作者
    就此打住,讨论QTP的问题,大家说话都文雅一点。因为大家学习和使用QTP的重点不同,对 某个概念的理解也有对有错,有点争论是难免的。但千万不要说任何过激的话了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-18 00:26 , Processed in 0.087423 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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