51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2207|回复: 13
打印 上一主题 下一主题

[原创] 关于readonly属性用来定位无法识别的问题,在线等,急!!!!!!!!!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-3-29 15:19:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于readonly属性用来定位无法识别的问题


set editObject=description.Create
editObject("name").value="wd"
editObject("readonly").value=0
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit(editObject).Set "测试一下"


请问我上面的语句为什么会失败?加上editObject("readonly").value=0后就失败了,readonly应该是BOOL型的,我0, "0", false都试过都会失败,提示无法识别对象
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-3-29 15:25:40 | 只看该作者
没必要开新帖吧。。。
要么你用disabled这个属性试试看。我印象里disabled和readonly有时候这个有效,有时候另一个有效。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-3-29 15:30:51 | 只看该作者
这两个都是BOOL型的属性值,目前看,这一类的属性都有这个问题,你说的list方法能获取到一个子对象,也能操作,但是为什么用描述性语言定位不行呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-3-29 15:32:07 | 只看该作者
俺也没办法了。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-3-29 15:49:05 | 只看该作者
QTP就是这么变态啊,有没有人试过这个问题啊?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-3-29 16:21:25 | 只看该作者
看了下那个输入框的属性,没有readonly这个属性,只有isDisabled属性,value为false。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-3-29 16:33:20 | 只看该作者
WebEdit(editObject) 这样直接描述属性,听说用于识别的属性是不能乱用BOOL型的,会有反效果
一般用于ChildObjects      description的方式中
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2010-3-29 16:51:55 | 只看该作者
SkyZhu:你确定么?就是用描述性语言里面不能用BOOL属性?
Haereticus:你说的是那里看的属性啊,的确 百度页面没有readonly属性,那缺省就是false啊,另外我也没有看见isDisabled属性啊
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-3-29 17:52:40 | 只看该作者
反正大致看了下用了BOOL的属性都会不识别。。没用过那种东西
disabled 属性是有的,isDisabled肯定是没的,disabled 也是BOOL型,但是效果是一样的,帮你试过了

你是要得到控件readonly属性的这个值?还是利用这个做什么其他的?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-3-29 18:00:28 | 只看该作者
多谢skyzhu,我是想总结一下QTP的所有属性,都看看怎么用,能不能用,我现在在封装一个框架啊,这样的话看来就用不了这些BOOL属性了,我的框架全部用描述性语言啊,但是奇怪,QTP对象仓库里面录制出来的类似属性是0,好像可以识别哦
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-3-29 18:07:37 | 只看该作者
可能对象库的方式就是用 description 一样的方式,都是用的对象传进去
而描述语言直接是字符串进去的
可能处理不太一样吧,具体也就不知道了,非bool属性也不是个个都能用的,这些东西一般只有用了才知道
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2010-3-29 18:29:14 | 只看该作者
skyzhu:   hehe ,描述性语言里面还有哪些属性不能识别啊?你所知道的能不能列举一下,谢谢

就我实验来看QTP确实很多毛病啊,我刚用childobject找子对象,结果用set lists = Browser("version:=internet explorer.*","openedbytestingtool:=true").Page("url:=.*").childobjects(objDesc)这种写法都找不到对象(我只打开一个浏览器窗口),而同样用描述性语言...WebEdit(objDesc)却能识别到

我有试了给上面那句set语句的浏览器和Page加上title属性,马上就能识别到子对象了,呵呵,开始深刻的鄙视QTP,呵呵,这么大一公司和我的水平差不多啊
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-3-30 10:00:27 | 只看该作者

回复 12# 的帖子

这个问题的原因是,正则属性有的时候不能直接单独使用.*来识别所有,效果就和没写这个属性一样,这个我也碰到过,但也不是绝对的
描述语言里直接用的正则是在9.0以后的版本才有的,难免的
对于page我的做法是使用预期的url去识别,如果出错说明没有匹配到,记录错误。
或者使用description取Browser下的childobjects,Class Name =  page ,item(0)作为page对象
Browser推荐用 openurl识别,1个就行,这样只要在IE启动时带上链接参数即可,就算开多个也没问题,只要知道启动时的链接是什么就能分辨是哪个Browser

[ 本帖最后由 skyzhu 于 2010-3-30 10:26 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2010-3-30 11:15:20 | 只看该作者

回复 13# 的帖子

SKYZHU:谢谢你的回复和帮助,不好意思你可能还是猜错了吧,set lists = objContainer.ChildObjects(objAttrs),没有获取到对象的原因是他执行太快了,页面还没有加载完,尽管我之前用了page.sync,而描述性语言bjContainer.WebEdit(XXX).Exist(n),有一个超时等待设置,就是说用前者的话要自己控制循环超时等待对象被加载完毕,我现在在犹豫要不要全部改为前者ChildObjects的方式,好处是能多识别几个定位属性,呵呵
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-10-6 20:36 , Processed in 0.088172 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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