51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4337|回复: 9
打印 上一主题 下一主题

[Robot] Robot 如何识别动态的HTMLLink

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-15 18:21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高人,这个问题我折腾2天了,实在解决不了,请大家帮忙啊~~

我在录制脚本的时候遇到一个HTMLLink 我录制下来的脚本是:  
HTMLLink DblClick, "Type=HTMLLink;Name=TreeView322_Div_text15", ""

然后回放的时候我发现这个HTMLLink 的Name=TreeView322_Div_text15 里的TreeView后面的数字是动态的,于是我就尝试用2种方法解决

方法1: 通配符
HTMLLink DblClick, "Type=HTMLLink;Name={TreeView*_Div_text15}", ""
失败了 还是不识别 (是不是在robot里只有静态的才能用通配符啊?)

方法2: 使用SQAGetProperty方法 (我测试的网页是多层的)
Result = SQAGetProperty("Caption=Stored Processes - Microsoft Internet Explorer provided by SAS;\;Type=HTMLFrame;HTMLId=_stpTree;HTMLTitle=Stored Processes;\;Type=HTMLLink;innerText=STPSanity", "name", myname)

红色部分是我用Object Properties得到的,但是失败了,返回值是1002--recMethod$语法有错误,经过我的尝试 只有把红色部分改成Name=TreeView322_Div_text15 才可以正常执行,但是这个Name的值是动态的呀,正是我想得到的值啊! 我就很奇怪了了我用innerText为什么不可以? 那等于这个方法也没法解决我的问题,或者是我使用不正确? 方正是失败了


方法3: 是别人告诉我的用Find找到网页上所有的Type=HTMLLink的东西(好象是得到一个数组) 然后按顺序取出我要的那个HTMLLink, 我不太知道Find怎么用,我刚入门的,并且我觉得这方法有点麻烦吧,要是我有1000个HTMLLink难道都要找出来吗?


各位高人! 我真的已经不成了,谁能告诉我怎么办啊,谢谢了!


最后在补充一下,我要找到的那个HTMLLink 用Inspector查了一下,似乎有用的只有那个innerText..... 为什么我录制脚本的时候robot不能把我的动作录成 HTMLLink DblClick, "Type=HTMLLink;innerText=STPSanity", "" 呢 ,这样多好啊, 有没有什么方法能设置一下啊




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-7-16 10:00:15 | 只看该作者
拜托。。都没有人知道吗。。斑竹大人。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-7-16 14:49:48 | 只看该作者

不太明白你的意思。

源代码:HTMLLink DblClick, "Type=HTMLLink;Name=TreeView322_Div_text15", ""
我不清楚你说的动态值是不是指Name后的值不是写死的值,而是需要访问数据库什么的。
如果那样的话可不可以将“活”值定义个数组变量,然后存进去,然后把脚本改成:
HTMLLink DblClick, "Type=HTMLLink;Name="&变量数组名&"","" 的形式?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-7-21 18:38:54 | 只看该作者

问题已解决

谢谢楼上的
我的意思是Name后面的值 每次刷新或重新打开网页的时候都会无规律增加 不需要访问数据库

提供解决办法供大家一起进步
我写了个函数在网页刷新后或者重新打开后在网页的HTML文件里查找我所需要的值 然后把这个值赋给脚本里的一个变量 然后就可以识别了 因为代码里涉及公司的一些信息 就不贴了 就几行 用VB写的实现文档查找功能
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-7-22 09:40:12 | 只看该作者

查找HTML的值用的是什么函数呀?

刚开始接触ROBOT,好多功能还都不会用
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-8-22 16:18:58 | 只看该作者
我没找到ROBOT有相关的函数 我就自己用VB写了一个普通的查找文件 我把HTML文件存成TXT文件 然后查找的
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-2 17:24:00 | 只看该作者

d如何取出像你说的每次刷新页面都更新的值啊?

我也遇到过这样情况,比如录制生成得脚本中有些值是每次刷新页面后变化的,这就造成了回放时如果不注意这个细节就会失败,那么怎样才能做到捕获动态生成的脚本中的值呢?能介绍下你写得函数得思路吗?给些提示呵呵:)
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-9-2 17:29:45 | 只看该作者

为什么刚刚回复的帖子没有显示出来啊?。。。

楼主介绍下你写的函数思路可以吗?就是如果捕获到页面每次刷新都会变化的数值?谢谢
这种情况我也遇到过,就是在录制产生的脚本中的某些值可能都是动态的:)
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-9-4 10:38:41 | 只看该作者
我的方法可能有点笨 但我没想到更简洁的
我是把当前页面的resource文件存起来 然后用VB里的匹配查找函数 在资源文件里找我要的那个总是发生变化的值的当前值 然后赋给一个全局变量 然后把这个变量替代脚本里的那个值 以后无论那个值是否发生变化 每次都是去得当前的值,就一定能找到了
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-9-4 11:06:22 | 只看该作者

感谢楼主回复

不过还是不太明白你说的,也许本人水平有限吧呵呵
你说的resource具体是指什么啊?还有就是你写的vb函数是直接写在robot的gui脚本里吗 ?还是封装成.dll什么的在robot里调用?
还有就是能简单说下你说的那个值是根据什么原理总在刷新啊?

[ 本帖最后由 bb64844866 于 2008-9-4 11:07 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-22 15:49 , Processed in 0.076743 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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