51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2875|回复: 19
打印 上一主题 下一主题

[原创] 如果我有一个超级连接,怎么录制

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-30 16:50:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果我有一个超级连接,但超级连接的内容总是变化的,我改怎么处理。
如:一个Page里面有个查询功能,每次能根据查询条件查找出一条记录,这条记录里面一个字段显示的是工作证号码。 工作证号码 是个超级连接,可以通过点击它进入另外一个page.但是工作证号码每次查询出来的值都是不同的,我录制的时候可能是‘12345’,我把查询条件参数化后,但可能下次回放脚本的时候我查询出来的工作证号码是‘987654’。那么run就会失败。

我想过的解决方法:通过spy了解这个超级连接位置的x,y的值,对page的这个位置进行鼠标点击事件,但不知道怎么去实现。

不知道还有其他解决方法不?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-9-30 16:53:31 | 只看该作者

在线等

在线等
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-9-30 17:26:07 | 只看该作者
参数化不可以吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-9-30 18:43:22 | 只看该作者
怎么对一个超级连接参数化?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-10-2 21:38:38 | 只看该作者
可以试试把工作证号码用正则表达式来表达
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-10-8 15:40:17 | 只看该作者

把工作证号码用正则表达式来表达 ?

请指导,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-10-8 15:58:25 | 只看该作者
你可以去参看一下正则表达式啊,帮助里就有.
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-10-9 12:56:38 | 只看该作者
我也碰到过连接根据不同的状态得到不同名字的问题,我是通过参数化解决的.
这个工作证号码肯定也是从数据库中通过条件查询出来的吧,那可以通过条件查询数据库中的工作证号码,再将超连接的名称属性参数化成查询得到的工作证号码
我的代码如下:
'从数据库中取出 需要审批的tempid,这里可以改成取工作证号码
Set conntempid= createobject("ADODB.Connection")
conntempid.Open"DRIVER=SQL Server;Server="&strbendiserver&";UID=sa;Password=davey@citiz.net;DATABASE="&strbendidatabase
Set restempid= createobject("ADODB.Recordset")
restempid.Open "select  *  from  recordsource where inpart = '/'    order by sendtime" ,conntempid,1,3
strtempid = restempid("tempid")
strfeibaojinkulink ="非报关货物进库审批有"&strfeibaojinkucount&"条未审批"
Browser("Browser").Page("保税区海关加工贸易联网监管系统").Link("text:="&strfeibaojinkulink).Click'参数化link的text属性

评分

参与人数 1综合技术指数 +10 收起 理由
chrisky2 + 10 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-10-11 16:13:16 | 只看该作者
先收藏
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-10-11 16:42:25 | 只看该作者

谢谢

谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-3-22 18:54:09 | 只看该作者
先收藏好,以后再试试
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-3-22 23:47:28 | 只看该作者
我觉的参数化可以解决吧~取出数值后参数化
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-3-23 11:17:05 | 只看该作者

感觉根据你的思路以下的方法可以实现

我想你可以使用描述性编成来实现

通过SPY抓你想要的LINK位置。
Set MyDescription = Description.Create()

MyDescription("x").Value = "xxx" 将你要定位的鼠标X点坐标写出来

MyDescription("y").Value = "xxx"  将你要定位的鼠标Y点坐标写出来


Browser("xxxxxxx").Page("xxxxxxxxxx").Link(MyDescription).Click
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2007-3-23 15:54:59 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-3-23 16:13:55 | 只看该作者
鼠标定位的方法太局限了,一些外界的因素很容易导致测试失败,比如说:屏幕的分辨率,换一种分辨率屏幕坐标就会发生变化,所以这种方法尽量少用甚至不用,还是用参数化比较好些~~sdlkfj6
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2007-3-26 17:57:56 | 只看该作者
楼上的方法适用于table类的.如果不是table的话,就不能用了.
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-3-29 13:33:22 | 只看该作者
我现在在Globe里面有个DataTable叫Tree_Name,
然后语句就是:
Browser("****").Page("****").Frame("deptmentTree").Link("text:="&TREE_NAME).Click

对不?

可是运行的时候就死机了~
555
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2007-3-29 14:51:49 | 只看该作者
完成了

完成了:

For intLoop = 1 to DataTable.GetRowCount
        strText=DataTable.Value("TREE_NAME",dtGlobalSheet)
        Browser("***").Page("***").Frame("deptmentTree").Link("text:="&strText).Click
    DataTable.GetSheet(dtGlobalSheet).SetNextRow
Next
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 14:53 , Processed in 0.083770 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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