51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2070|回复: 4
打印 上一主题 下一主题

[原创] 描述性编程中《javascript:AddBook();》连接的使用问题。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-18 17:31:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在描述性编程中遇到一个问题,怎么都不能解决。只要来此请教了。
问题描述:请先看代码
...
Set ehome=browser("name:=我家日记 - eHome 网家 — 记录家庭成长").Page("title:=我家日记 - eHome 网家 — 记录家庭成长")
ehome.link("text:=[创建日记本]","url:=javascript:AddBook();").click
ehome.WebEdit("name:=txtBookName").set  "日记本1"
ehome.WebEdit("name:=txtDesc").set  "日记本简介"
ehome.WebEdit("name:=txtLabel").set  "日记本标签"
ehome.Image("name:=image","file name:=diarybook_thumb3.jpg").Click
ehome.WebRadioGroup("onAddDiary").Select "1101"
ehome.WebRadioGroup("onReadDiary").Select "1021"
ehome.WebButton("确 定").Click


如上面代码,link对象里面已经使用了2个属性,在回放中依然无法识别对象。我再增加几个属性,同样提示无法识别对象。
但是,如果你使用录制的方式的话,就能回放这个操作。

所以我的问题就是:
1,在描述性编程中,如此类使用A标签的,但是是javascript操作的。对象应该如何设置属性,才能使用呢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-3-19 09:28:53 | 只看该作者
高手,高手快出来。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-3-19 09:38:31 | 只看该作者
我的经验是描述对象的属性并不是越多越好,而是应该只要能确定唯一的对象就行了。
代码:< ehome.link("text:=[创建日记本]","url:=javascript:AddBook();").click >
一般来说,同一个画面上,是不会出现两个相同名称的Link或是Button的,
因此,一般只要使用对象的“Name”或是“Text”属性就足以描述一个对象。
当然,特殊的情况也是有的,例如:在登录页面中,GridView,DataTable中会有多行出现。
这个时候,QTP会对有相同描述属性的对象添加一个“Index”属性,从 0 开始分配,依次增加。
所以,楼主所用的 <url:=javascript:AddBook();>,诸如此类的属性我会极力避免。
我对个问题的解决提案是先把 <url:=javascript:AddBook();> 去掉试一试,不行的话,
那就可能要用到转义符——“\”,我记得在“(”和“)”之前是要加的,你先试试看。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-3-19 19:41:38 | 只看该作者
ehome.link("text:=[创建日记本]","url:=javascript:AddBook();").click
text:=[创建日记本]使用描述性编程,QTP默认为正则表达式,[ ],签要使用“\”转义字符
改为:ehome.link("text:=\[创建日记本\]","url:=javascript:AddBook();").click
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-3-20 12:15:28 | 只看该作者

回复 4# 的帖子

原帖由 Haereticus 于 2009-3-19 19:41 发表
ehome.link("text:=[创建日记本]","url:=javascript:AddBook();").click
text:=[创建日记本]使用描述性编程,QTP默认为正则表达式,[ ],签要使用“\”转义字符
改为:ehome.link("text:=\[创建日记本\]","url:=ja ...

你的回答是正确的,原来并不是插件支持,也不是属性用多了,或者用错了。
是某些符号需要转义,因为这些符号是用来正则表达式时使用的,
不转义,QTP会按照正则表达式的规则来处理。而造成没有这个对象了。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 19:46 , Processed in 0.090285 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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