51Testing软件测试论坛

标题: Robot 如何识别动态的HTMLLink [打印本页]

作者: okiukun    时间: 2008-7-15 18:21
标题: Robot 如何识别动态的HTMLLink
各位高人,这个问题我折腾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", "" 呢 ,这样多好啊, 有没有什么方法能设置一下啊





作者: okiukun    时间: 2008-7-16 10:00
拜托。。都没有人知道吗。。斑竹大人。。。
作者: bb64844866    时间: 2008-7-16 14:49
标题: 不太明白你的意思。
源代码:HTMLLink DblClick, "Type=HTMLLink;Name=TreeView322_Div_text15", ""
我不清楚你说的动态值是不是指Name后的值不是写死的值,而是需要访问数据库什么的。
如果那样的话可不可以将“活”值定义个数组变量,然后存进去,然后把脚本改成:
HTMLLink DblClick, "Type=HTMLLink;Name="&变量数组名&"","" 的形式?
作者: okiukun    时间: 2008-7-21 18:38
标题: 问题已解决
谢谢楼上的
我的意思是Name后面的值 每次刷新或重新打开网页的时候都会无规律增加 不需要访问数据库

提供解决办法供大家一起进步
我写了个函数在网页刷新后或者重新打开后在网页的HTML文件里查找我所需要的值 然后把这个值赋给脚本里的一个变量 然后就可以识别了 因为代码里涉及公司的一些信息 就不贴了 就几行 用VB写的实现文档查找功能
作者: zhaoping    时间: 2008-7-22 09:40
标题: 查找HTML的值用的是什么函数呀?
刚开始接触ROBOT,好多功能还都不会用
作者: okiukun    时间: 2008-8-22 16:18
我没找到ROBOT有相关的函数 我就自己用VB写了一个普通的查找文件 我把HTML文件存成TXT文件 然后查找的
作者: bb64844866    时间: 2008-9-2 17:24
标题: d如何取出像你说的每次刷新页面都更新的值啊?
我也遇到过这样情况,比如录制生成得脚本中有些值是每次刷新页面后变化的,这就造成了回放时如果不注意这个细节就会失败,那么怎样才能做到捕获动态生成的脚本中的值呢?能介绍下你写得函数得思路吗?给些提示呵呵:)
作者: bb64844866    时间: 2008-9-2 17:29
标题: 为什么刚刚回复的帖子没有显示出来啊?。。。
楼主介绍下你写的函数思路可以吗?就是如果捕获到页面每次刷新都会变化的数值?谢谢
这种情况我也遇到过,就是在录制产生的脚本中的某些值可能都是动态的:)
作者: okiukun    时间: 2008-9-4 10:38
我的方法可能有点笨 但我没想到更简洁的
我是把当前页面的resource文件存起来 然后用VB里的匹配查找函数 在资源文件里找我要的那个总是发生变化的值的当前值 然后赋给一个全局变量 然后把这个变量替代脚本里的那个值 以后无论那个值是否发生变化 每次都是去得当前的值,就一定能找到了
作者: bb64844866    时间: 2008-9-4 11:06
标题: 感谢楼主回复
不过还是不太明白你说的,也许本人水平有限吧呵呵
你说的resource具体是指什么啊?还有就是你写的vb函数是直接写在robot的gui脚本里吗 ?还是封装成.dll什么的在robot里调用?
还有就是能简单说下你说的那个值是根据什么原理总在刷新啊?

[ 本帖最后由 bb64844866 于 2008-9-4 11:07 编辑 ]




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