51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10315|回复: 67
打印 上一主题 下一主题

[原创] IF语句中的内容执行不了

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-16 19:33:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
其实是很简单的IF语句,因为我第一次用,所以怎么也找不到问题出在哪里,请各位高手帮忙(PS:目前我只会录制,然后参数化)
语句如下:
If  ESH=1  Then
    OracleFormWindow("Master Item").OracleCheckbox("Assign Item to Organization").Select
End If
ESH是测试中没有出现过的数据,我在Action Call Properties的Parameter Values里加了,并参数化在了Data Table里。

就是想判断这个输入参数是1的话,就在checkbox里打勾,不是的话就执行下一步。

但QTP不管输入参数是多少,都不执行,直接往下一步走,到底是我输入参数设置上有问题,还有IF语句有问题呢?
请帮帮忙,不胜感激~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

68#
 楼主| 发表于 2008-4-29 15:00:11 | 只看该作者
绝对没错,是CN!!这个我还是知道的
又试了一下,还是不行

我还是在TUDOU上找越狱好了哈
看在MILLER份上,我也一定要把它弄清楚。。。
不过,前辈,给个提示吧。。。。。

那个百度的,彻底完成了哈,我加了两个EXIST语句,判断下一页和每个LINK存在后,再进行相关操作。
回复 支持 反对

使用道具 举报

该用户从未签到

67#
发表于 2008-4-29 14:47:47 | 只看该作者
原帖由 huaxiaowu 于 2008-4-29 14:28 发表
汗...没有下拉框.....
咋回事.......

不知道为什么我这边的GOOGLE没有下拉框....难道是因为在新加坡的关系???
试了好多次了....

所以我改成土豆网,搜索YUEYU,可以在下拉框中找到越狱第二季,反正道理一样,我就 ...


你确定你上的是www.google.cn 么~~上alibaba.com也可以,不过这些网站的实现方法都不同,用QTP去做的时候也有一些区别,你可以都做做看~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

66#
 楼主| 发表于 2008-4-29 14:28:42 | 只看该作者
汗...没有下拉框.....
咋回事.......

不知道为什么我这边的GOOGLE没有下拉框....难道是因为在新加坡的关系???
试了好多次了....

所以我改成土豆网,搜索YUEYU,可以在下拉框中找到越狱第二季,反正道理一样,我就拿这个测了.

我去另开一帖先~~

[ 本帖最后由 huaxiaowu 于 2008-4-29 14:42 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

65#
 楼主| 发表于 2008-4-29 13:33:06 | 只看该作者
原帖由 hsjzfling 于 2008-4-28 11:40 发表


www.google.cn的输入框中输入指定字符(比如"sh"),在弹出的下拉框中逐一比较是否有预期的值显示,比如"手机","神墓",若找到预期值,则将结果数保存到datatable中。

lz可以考虑另开一帖~~


哇,谢谢前辈,不过昨天下午和今天早上有点事,所以没看到。

我现在在改百度这个程序,因为我其实只写了个最最简单的,只测试一个数据没问题,再在DATATABLE里输入数据的话,循环不起来的。再就是,现在的情况是,预先的取值在BAIDU搜索出来的LINK中是能找到的,如果找到最后找不到呢。

我想先把这两个问题解决了,比如如果找不到那个LINK,就在第三行里输入“URL CANN‘T BE FOUND”
而且这样的话,最后一页就没有10个LINK了。

前辈给的这个题目,涉及到下拉菜单,我还没什么概念,呵呵,又可以捣腾好长时间啦。
等我有点头绪了,就去另开一帖:)
回复 支持 反对

使用道具 举报

该用户从未签到

64#
 楼主| 发表于 2008-4-29 13:25:16 | 只看该作者
原帖由 wyy83 于 2008-4-28 10:50 发表
1.题目要求:在百度上依次输入指定的关键字(写在DataTable第一列)->搜索->在查找到的结果中找到与预期相匹配的链接(当前页找不到就翻下一页)(预期值写在DataTable第二列)->将链接的url保存在DataTable第三列.
2.实现 ...


这个不是应该在结果当中看的么???
在RESULTS里面的RUN-TIME DATATABLE里面
回复 支持 反对

使用道具 举报

该用户从未签到

63#
发表于 2008-4-28 11:40:23 | 只看该作者
原帖由 huaxiaowu 于 2008-4-28 09:00 发表
还有没有别的题目可以给我做做的?
现在公司又没什么事做了……


www.google.cn的输入框中输入指定字符(比如"sh"),在弹出的下拉框中逐一比较是否有预期的值显示,比如"手机","神墓",若找到预期值,则将结果数保存到datatable中。

lz可以考虑另开一帖~~
回复 支持 反对

使用道具 举报

该用户从未签到

62#
发表于 2008-4-28 10:50:58 | 只看该作者
1.题目要求:在百度上依次输入指定的关键字(写在DataTable第一列)->搜索->在查找到的结果中找到与预期相匹配的链接(当前页找不到就翻下一页)(预期值写在DataTable第二列)->将链接的url保存在DataTable第三列.
2.实现
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable("keyword", dtGlobalSheet)
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click

Dim keyword_value,search_value,result,url
keyword_value = DataTable("keyword", dtGlobalSheet)
result = 0

While result  = 0
        For i = 0 to 9
        search_value = Browser("百度一下,你就知道").Page("百度搜索_四川成都").Link         ("x:=17","index:="&i).GetROProperty("innertext")
        DataTable.GlobalSheet.AddParameter"搜索结果",search_value
        result = instr(1,search_value,keyword_value,1)
        If result > 0  Then
        url = Browser("百度一下,你就知道").Page("百度搜索_四川成都").Link("x:=17","index:="&i).GetROProperty("url")
        DataTable.GlobalSheet.AddParameter"URL",url
        Exit for
        End If
        Next
        If   result = 0Then
        Browser("百度一下,你就知道").Page("百度搜索_四川成都").Link("下一页").Click
        End If
Wend

谢谢hsjzfling的引导、谢谢huaxiaowu将结果共享出来,让我学习!
问题:现在是运行时,在第二列显示搜索结果,第三列显示url,但是运行结束就不再显示,怎么运行结束后,上述两列仍然保存在globalsheet表中呢?谢谢!

[ 本帖最后由 wyy83 于 2008-4-28 11:09 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

61#
发表于 2008-4-28 09:41:28 | 只看该作者
恩 先谢谢  我始终唯一标识不了每个链接  再仔细看下
回复 支持 反对

使用道具 举报

该用户从未签到

60#
 楼主| 发表于 2008-4-28 09:37:29 | 只看该作者
那个MSGBOX(Y)是测试Y的取值用的,做完以后删了........
回复 支持 反对

使用道具 举报

该用户从未签到

59#
 楼主| 发表于 2008-4-28 09:34:47 | 只看该作者
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable("searchitem", dtGlobalSheet)
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
Dim x,y,z,a
        x=datatable("expectitem",GlobalSheet)
        z=0
While z=0
        For i=0 to 9
                y=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("x:=17","index:="&i).GetROProperty("innertext")
                msgbox(y)
                z=InStr(1,y,x,1)
                If z>0 Then
                        a=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("x:=17","index:="&i).GetROProperty("url")
                        DataTable("url",GlobalSheet)=a
                        Exit for
                End If
        Next
        If z=0 then
                Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("下一页").Click
        end if
Wend
回复 支持 反对

使用道具 举报

该用户从未签到

58#
发表于 2008-4-28 09:27:21 | 只看该作者
原帖由 huaxiaowu 于 2008-4-28 09:00 发表
还有没有别的题目可以给我做做的?
现在公司又没什么事做了……


能否把你做的贴出来,学习下!谢谢

你最后怎么标识每个链接了?
回复 支持 反对

使用道具 举报

该用户从未签到

57#
 楼主| 发表于 2008-4-28 09:00:48 | 只看该作者
还有没有别的题目可以给我做做的?
现在公司又没什么事做了……
回复 支持 反对

使用道具 举报

该用户从未签到

56#
发表于 2008-4-25 17:35:15 | 只看该作者

回复 51# 的帖子

楼上的大哥能否说说Link("x:=17","index:="&i).中"index:="&i是什么意思啊,&在这里起什么作用?连接字符串?还是。。。。。
谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

55#
 楼主| 发表于 2008-4-25 11:21:45 | 只看该作者
这个太简单了,我看不懂的……
回复 支持 反对

使用道具 举报

该用户从未签到

54#
发表于 2008-4-25 11:08:09 | 只看该作者
原帖由 huaxiaowu 于 2008-4-25 10:14 发表
万分感谢!!!!!

我终于把这个程序给完成了

请问,楼上的怎么知道这个命令能把变量写到DATATABLE里去的呢?
有没有专门介绍这些命令的资料啊???

太谢谢了!!!



VBS编程时会有提示,比如输入:DataTable.,自动会有后跟格式和提示出现,可以帮助学习。呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

53#
 楼主| 发表于 2008-4-25 10:24:05 | 只看该作者
原帖由 hsjzfling 于 2008-4-25 09:56 发表
1、Link("x:=17","index:="&i)这样写语法和逻辑是没错的~变量需要写在""外
2、注意用GetROProperty来取运行时对象的属性值
3、DataTable赋值可以象普通变量一样,先在DataTable中添加一个列,可以事先手动加也可以 ...



恩,俺照您说的也试了,果然好用。又学了一点。
帮助和GOOGLE都是英文,看着麻烦,这个不急,还是问人来得方便,呵呵,不好意思啊,麻烦了你这么多。
如果是赶着要的程序,就是看英文再头大,也得硬着头皮看了……
回复 支持 反对

使用道具 举报

该用户从未签到

52#
 楼主| 发表于 2008-4-25 10:14:22 | 只看该作者
万分感谢!!!!!

我终于把这个程序给完成了

请问,楼上的怎么知道这个命令能把变量写到DATATABLE里去的呢?
有没有专门介绍这些命令的资料啊???

太谢谢了!!!
回复 支持 反对

使用道具 举报

该用户从未签到

51#
发表于 2008-4-25 09:56:47 | 只看该作者
1、Link("x:=17","index:="&i)这样写语法和逻辑是没错的~变量需要写在""外
2、注意用GetROProperty来取运行时对象的属性值
3、DataTable赋值可以象普通变量一样,先在DataTable中添加一个列,可以事先手动加也可以用50楼说的方法,然后DataTable(<列名>,<表名>) = <Value>就行了。。。

遇到问题先查帮助然后google,都搞不定然后再问人~
回复 支持 反对

使用道具 举报

该用户从未签到

50#
发表于 2008-4-25 09:33:55 | 只看该作者
DataTable.GlobalSheet.AddParameter  "datatablename", 变量名

上面这个命令就可以将定义的变量写入到datatable中去。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 11:48 , Processed in 0.081730 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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