51Testing软件测试论坛

标题: 描述性语言的使用 [打印本页]

作者: nk9841    时间: 2007-1-25 14:06
标题: 描述性语言的使用
我使用描述性语言作查询结果验证,可是写了代码,就是认不出对象来。。。。。。。高手帮忙看看!!!



If Browser("ECRM系统登陆页").Page("Garden HotelCRM_2").Frame("frmright_2").WebElement("outerText:= ADVANTEST SHANGHAI LTD /ZHD[Z] [Andy ZHENG] ").Exist(1) Then
        msgbox "ok",,"描述化对象"
End If

下面的对象的属性spy截图:
作者: nk9841    时间: 2007-1-25 14:08
上面的程序,我如果用录制的方法,运行就可以找到对象,代码如下:
If Browser("ECRM系统登陆页").Page("Garden HotelCRM_2").Frame("frmright_2").WebElement("全选").Exist(1) Then
           msgbox "ok",,"test object"
End If

两个代码我只修改了WebElement中的参数。。。。。为什么不行呀,实在不明白。。。。
作者: nk9841    时间: 2007-1-25 15:04
没人知道么????各位,大家看了上面的问题有什么想法交流交流呀。。。。。。

我实在是找不到问题的所在了。。。。。。给个提示也好呀~sdlkfj1 sdlkfj1 sdlkfj1
作者: learnbox    时间: 2007-1-25 15:10
标题: 增加多个属性
我自己试了一个类似的,光用outerText的确不行.后来我加了index,然后就成功了. 我想可能是那个属性不能唯一标识那个webElement吧. 你可以不用object spy, 而是直接在object Respository中找到webElement,系统默认列出的属性应该会比较容易标识一个对象吧.

我也是刚开始学QTP, 上述建议仅供参考了
作者: nk9841    时间: 2007-1-25 15:48
我也试过用object Respository找WebElement,如下图:


我实在是搞不清楚用什么来标识了。。。。按说这个innertest应该可以标识唯一的了,不太可能出现同名的呀。。。。。


另,我用
temp=Browser("ECRM系统登陆页").Page("Garden HotelCRM_2").Frame("frmright_2").WebElement("全选").GetRoProperty("innertext")
msgbox temp,,"test object"


来查看名称,也没问题呀。。。。。
作者: nk9841    时间: 2007-1-25 15:51
另,我用这个主要是为了可以自动化检测查询结果(查询结果的记录数是不定的),大家对自动化检测查询结果都是怎么作的????查询应该是软件最常用的功能了。。。。
作者: xiaonan    时间: 2007-1-25 15:52
QTP识别对象有它的机制,所以如果一个属性不能直接定位的时候,请增加属性.不能用自己的思维去理解的啊?
作者: nk9841    时间: 2007-1-25 15:56
晕,没懂,如果要增加属性,我应该增加哪个属性呢????
html tag:=TD这个我加过,没用。。。。。。其他的好像没什么了呀。。。。。。。
作者: xiaonan    时间: 2007-1-25 16:05
这就好比你在一个广场上找一个人.结果广场上有很多人,你就大喊这个名字,但是可能广场中有很多人都叫这个名字.那么对于定位目标就不那么方便了.所以这个时候,如果你能再给点信息,比如性别.还不行,再加上年龄.这样是不是定位对象就更准确,直接了?

找一个能区别其他对象的.比如"全选"这个属性.我只是随便说了个,你可以通过比较而定位.一个不行,再找一个,再不行再找,直到能让QTP直接识别到这个对象
作者: m_2    时间: 2007-1-25 17:04
标题: 回复 #2 nk9841 的帖子
我个人认为,既然你能用录下来的代码,为什么不用呢?
其次,你如果想唯一识别这个WebElement,你可以先录下来,然后到Object仓库中去,看一下,借鉴QTP是怎么识别它的。
然后,再在代码中实现。
作者: nk9841    时间: 2007-1-25 17:34
xiaonan/m_2,我明白你们的意思了。。。。问题是。。。。我改用什么方式来标识他们呢???他们的属性中除了innertext和outertext比较有特点。。。。其他的不是无法用。。。就是没有特点。。。。我也挺愁的,我上面也贴了object Respository的截图,没什么可用的属性了。。。
作者: nk9841    时间: 2007-1-25 17:43
另外,我非要这么表示他们的原因是,我希望在程序中,通过动态的改变:=后面的值来访问不同的对象~

我的思路:
我要作的是,自动验证查询结果
1。我先通过连接数据库,取道了查询结果,实现这一步没问题。
2。我本想取得所有的记录在页面中显示的名称,和我数据库得到的查询结果对比,就可以验证是查询是否正确,但在操作中,我不知道怎么实现这里!
3。我变相的数据库中得到的记录值(这个值和页面显示的查询结果一样)作描述性语言,在页面中查找对应的记录,如果所有的数据库记录都可以在页面上找到对应的页面记录,而查询记录的页面总数和数据库查询到的记录总数一样,也可以证明查询结果正确。现在我就是无法完成的就是用描述性语言来识辨那些该死的记录对象。。。。。。。
作者: nk9841    时间: 2007-1-25 17:49
高手帮忙呀~~~~~
作者: denisye    时间: 2007-1-25 17:56
我一般识别对象是用innerhtml不知这个属性能否对你的系统有效?
作者: nk9841    时间: 2007-1-25 18:10
这个属性在我要表示的对象里面非常长。。。。。。。。。。。。。。。大约有3、40个字符。。。。。。。。。。
作者: nk9841    时间: 2007-1-26 11:53
上帝呀,我真是搞不定这个,版主,能帮忙解决一下么?????
我提供测试环境!大家帮忙看看~~~~多谢大家拉~~~~~

地址:http://shiji-kl.shijinet.com.cn/ecrm_shiji/
用户名:test user
密码:1111

录制流程:登陆-》客户管理-》客户档案-》查询(条件随便)

在代码中加入一下的代码

If Browser("ECRM系统登陆页").Page("Garden HotelCRM_2").Frame("frmright_2").WebElement("outerText:= ADVANTEST SHANGHAI LTD /ZHD[Z] [Andy ZHENG] ").Exist(1) Then
        msgbox "ok",,"描述化对象"
End If


红色部分为需要大家帮忙修改的,目的是用描述性语句指定查询记录,既如果用描述性语句可以使程序弹出描述化对象Ok的提示,就是正确了。关键是用什么杨的属性可以表示查询结果中的各记录???????
弄了2天了,我实在没办法了。。。。。先谢谢大家了~~~~~
作者: nk9841    时间: 2007-1-26 11:54
哦,我太着急了,写作了,录制流程错了,差了一步,以下面的为准:
录制流程:登陆-》客户管理-》客户档案-》查询客户-》查询(条件随便)
作者: nk9841    时间: 2007-1-26 12:04
忘了说了,我用的是qtp9。0。。。。。这样的问题不会和版本还有关系吧???呵呵,我都有点神经质了。。。。
作者: nk9841    时间: 2007-1-26 12:11
高手快来呀~~~~
作者: nk9841    时间: 2007-1-26 13:21
sdlkfj9
作者: 梦醒十分    时间: 2007-1-26 13:39
我把页面上所有对象都加进来也没看到叫 “全选”的webelement,请问你是怎么spy到它的
作者: nk9841    时间: 2007-1-26 13:46
楼上的,在查询结果中,用spy点击记录后面的空白的地方!!!我希望得到的焦点不是link,而是记录~~~~~我也不知道我这样作对不对,或者大家有没有别的方法可以得到查询结果的各个名字???????
作者: nk9841    时间: 2007-1-26 16:26
sdlkfj9
作者: nk9841    时间: 2007-1-26 17:50
哈哈,问题终于解决了。。。。。。没想到原因很简单~~~~~~~就用index这一个值就行,反而加了innertext这个缺找不到,造成这样的原因事页面最上面有一排A~Z(按名称首字母查询)占用了index的0~25的值,我用index:=0和innertext:=记录名当然找不到了(innertext在index=0时是A)。。。。。呵呵,希望大家不要犯我犯的错误!!!!

另外感谢大家,没有大家的积极帮助,我也不会一直坚持着研究这个问题。。。。。。。多谢啦~sdlkfj3 sdlkfj3 sdlkfj3
作者: walker1020    时间: 2007-1-26 18:30
问题解决了就好。这也印证了一句话:最简单的也是最实用的。也谢谢楼主提供了问题的解决方法。
作者: Coffey111111    时间: 2007-1-31 14:03
学习楼主研究问题的精神,感谢楼主共享解决方法~~sdlkfj3   学习
作者: 5555    时间: 2007-6-8 13:04
dddddd
作者: gotolife    时间: 2007-6-10 16:52
sdlkfj3




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2