51Testing软件测试论坛

标题: IF语句中的内容执行不了 [打印本页]

作者: huaxiaowu    时间: 2008-4-16 19:33
标题: IF语句中的内容执行不了
其实是很简单的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语句有问题呢?
请帮帮忙,不胜感激~
作者: photon    时间: 2008-4-16 21:15
在if语句上面加一句
msgbox ESH

可以帮你在两个问题中排除一个。
作者: huaxiaowu    时间: 2008-4-17 08:44
好办法,谢谢photon,教了我办法,而不是给个答案

加了MSGBOX之后,发现没有ESH的值,ESH的值要怎样加入才行呢?
我先在Action Properties的Parameters里设了一下,又在Action Call Properties的Parameter Values中参数化在了Data Table里,还是没有值,这样的值我要怎么设才行?
作者: hsjzfling    时间: 2008-4-17 09:42
用Parameter("ESH")替换ESH
作者: 鹭岛    时间: 2008-4-17 09:53
ESH=DataTable("",GlobalSheet)
你在GLOBAL里面难道没传值么?

汗,录制,说实在话,录制我还真不太懂,我会写,叫我录制,我还真要去学习学习,以前好像用过,可忘记了,后来基本都用写的了
作者: huaxiaowu    时间: 2008-4-17 10:07
hsjzfling,你说的我不是很懂。。。。。。
Dim ESH
parameter DataTable("ESH", dtGlobalSheet)
msgbox (ESH)

这样的话,QTP会说parameter语句缺少对象……
作者: 鹭岛    时间: 2008-4-17 10:09
LZ看看我写的定义,希望对你有帮助
作者: huaxiaowu    时间: 2008-4-17 10:10
谢谢鹭鸟,现在可以了。。。。
我原先写的是ESH=DataTable("",dtGlobalSheet),这个不行,所以……
谢谢谢谢……

我太菜了……
我会好好学习的……
作者: 鹭岛    时间: 2008-4-17 10:10
DataTable里面一定要定义一个你那个DataTable(“X”,GlobalSheet)   如果这个引号里面取值叫X,那DATATABLE里面也要定义一个X来对应
作者: 鹭岛    时间: 2008-4-17 10:12
原帖由 huaxiaowu 于 2008-4-17 10:10 发表
谢谢鹭鸟,现在可以了。。。。
我原先写的是ESH=DataTable("",dtGlobalSheet),这个不行,所以……
谢谢谢谢……

我太菜了……
我会好好学习的……

不客气,其实我也是个半桶水,输入自动化搞了1年多了,可好像也觉得没什么可学的,可真正碰到问题却发现自己也不会,哎~~~
作者: huaxiaowu    时间: 2008-4-17 10:12
谢谢你还写出来,真的很感谢,哈哈,搞定了~
呵呵
作者: huaxiaowu    时间: 2008-4-17 10:15
有dt和没有dt有什么差别呢?
我是看别人的学习心得,看他们都是加了dt写的……
好像是取值来着……

我才刚学,不过倒觉得QTP挺有意思的,功能很强大啊
我现在不是用它测试,是用它来往数据库里输数据……data input……
作者: 鹭岛    时间: 2008-4-17 10:29
原帖由 huaxiaowu 于 2008-4-17 10:15 发表
有dt和没有dt有什么差别呢?
我是看别人的学习心得,看他们都是加了dt写的……
好像是取值来着……

我才刚学,不过倒觉得QTP挺有意思的,功能很强大啊
我现在不是用它测试,是用它来往数据库里输数据……data  ...

这个还真难道了,以前知道点,现在真的忘记了,我记得好像是带DT的比较狭隘,而不带DT的范围广,所以从我开始使用QTP没多久后就一直使用不带DT了
作者: huaxiaowu    时间: 2008-4-17 10:38
原来如此……
以后我也不带DT了,哈哈

输入自动化,我现在在做的事情好象跟你很像。
QTP已经在欢快地跑了,我换台电脑继续学习去,真的很感谢,以后多向你请教,继续多逛这个论坛,哈。

解决了这个问题,我好开心,呵呵,可是又不能在办公室大叫我很开心……
作者: 鹭岛    时间: 2008-4-17 11:17
QTP最主要有人指导,想当初我自己看文档,什么狗屁看了一个多月,几个字形容:对牛弹琴吧,可能我领悟能力差吧!
后来我同事的帮助下,3天搞定QTP了,后来想想,QTP真的没什么,很简单,要看路走对了还是歪了,前面看些文档仅仅是了解,后来有人指导,那才真的快速理解!一定要有人指导,这样绝对是事半功好几倍,如果没人指导靠自己,浪费太多时间!

弄清楚对象库,属性,简单的VBS,基本上可以应付简单的WEB的自动化测试了
然后慢慢把脚本语言加深,数据库,VBS的加深这样基本就可以出师了(恐怕也是所谓的半桶高手了)
你还是新手,先弄懂前面3个
现在9.0开始对于对象库的添加已经相当简单了,不像以前我使用8.2那么麻烦,你可以简单写个百度的脚本
方法:首先把百度这个BROWSER,PAGE添加进对象库(底下可以不添加任何控件,然后在PAGE底下加入WEBEDIT和Link,WebElement,Image,BUTTON这个几个部件够描述百度打扮江山了
简单的描述下如何查找(百度查找如何使用QTP)
1.对象库已经建立好
2.可以简单写脚本了 ,如:(我仅仅简单描述,不是很相信,在公司不能开QQ,不然可以更细指导你)
Browser("百度").Page("百度").WebEdit("输入框").Set "厦门"
Browser("百度").Page("百度").WebButton("查找").Click    '这个已经实现了在百度中查找"厦门"这个词了,其他类似
比如连接就是Browser("百度").Page("百度").Link("属性:=MP3").Click  '为了让你看的清楚我吧“:”强化了,这个就完成了连接到MP3的情况了
对你来说简单的WEB就是一个BROWSER下的PAGE内的各个控件的操作!(用录制的时候你会发现有什么PAGE1,PAGE2....,用写脚本统统都是一个PAGE,没有所谓BROWSER下有好几个PAGE的对象库(只有录制才会出现)
作者: huaxiaowu    时间: 2008-4-18 11:13
我现在就在自己摸索啊,看user guider看了2个星期,看着倒是觉得不难,一做起东西来,好痛苦……5555
主要我现在人在新加坡,有些东西,问同事也问不清楚,即使是说华语的同事,说的华语跟我们也不大一样,沟通有问题啊……
更何况交代任务的是印度大师兄……卷舌卷得英语我听起来都很痛苦。

还好今天上来论坛看了一下自己的帖子。
好人啊!!

可是现在还要做个一个workflow的测试,下午大师兄还有任务,你说的这个我只能周末自己去捣鼓了……下班后再细看

下午的任务,希望不要太难……

我本来打算开始看对象模型参考的,可是那个只有英文版,看起来很痛苦
也看了一个VBS的入门教程,讲了循环语句、N维数组和函数、子程序,对编程者来说很浅的内容,但对我……

我也知道最好还是实践写脚本,可是都不知道该怎么入手
真是谢谢前辈,有个方向就可以捣鼓捣鼓了:)
作者: huaxiaowu    时间: 2008-4-18 11:13
我现在就在自己摸索啊,看user guider看了2个星期,看着倒是觉得不难,一做起东西来,好痛苦……5555
主要我现在人在新加坡,有些东西,问同事也问不清楚,即使是说华语的同事,说的华语跟我们也不大一样,沟通有问题啊……
更何况交代任务的是印度大师兄……卷舌卷得英语我听起来都很痛苦。

还好今天上来论坛看了一下自己的帖子。
好人啊!!

可是现在还要做个一个workflow的测试,下午大师兄还有任务,你说的这个我只能周末自己去捣鼓了……下班后再细看

下午的任务,希望不要太难……

我本来打算开始看对象模型参考的,可是那个只有英文版,看起来很痛苦
也看了一个VBS的入门教程,讲了循环语句、N维数组和函数、子程序,对编程者来说很浅的内容,但对我……

我也知道最好还是实践写脚本,可是都不知道该怎么入手
真是谢谢前辈,有个方向就可以捣鼓捣鼓了:)
作者: Mix    时间: 2008-4-18 11:41
持之以恒,突破是一瞬间的事情
作者: hsjzfling    时间: 2008-4-18 13:22
原帖由 huaxiaowu 于 2008-4-17 10:15 发表
有dt和没有dt有什么差别呢?
我是看别人的学习心得,看他们都是加了dt写的……
好像是取值来着……


dtLocalSheet,dtGlobalSheet等实际是QTP定义的变量,具体是什么值你都可以用msgbox或者debug view查看下。
DataTable(<column name>,<sheet name>),具体参数可以写些什么值,在帮助中搜索下就知道了,比如我要取globalsheet中第一列的参数值,那么可以简单的写为DataTable(1,1)。只有弄清楚每个对象每个方法的详细信息才能更便捷的去使用它们。而去了解这些信息的最好方法就是查帮助。

当然,从完全不会开始学习qtp的话,有人指导会事半功倍,等大致知道怎么使用之后,除非你交钱去学,否则很难有人会耐心的教你每一个细节,因此剩下的主要靠自己学了。

自学主要就是多用,多测,多想。遇到搞不定的问题,1、查帮助,2、google,3、问人
这样学起来才快

在论坛上帮别人解决问题,实际上也是自我完善、复习的过程,一个人遇到的问题总是有限的,综合大家的有价值的问题,学习起来就会快很多
作者: hsjzfling    时间: 2008-4-18 13:28
多做些实际问题,比如之前有家公司面试时,就让我40分钟内完成一个脚本,大致要求是
在百度上依次输入指定的关键字(写在DataTable第一列)->搜索->在查找到的结果中找到与预期相匹配的链接(当前页找不到就翻下一页)(预期值写在DataTable第二列)->将链接的url保存在DataTable第三列
做的过程中还是有些小问题要比较注意的,可以尝试做做看
作者: zhangfangfang46    时间: 2008-4-18 16:30
这个问题应该给我们初学的人来说,还是会碰到好多问题的哦!多教我!
作者: huaxiaowu    时间: 2008-4-21 08:54
原帖由 鹭岛 于 2008-4-17 11:17 发表
QTP最主要有人指导,想当初我自己看文档,什么狗屁看了一个多月,几个字形容:对牛弹琴吧,可能我领悟能力差吧!
后来我同事的帮助下,3天搞定QTP了,后来想想,QTP真的没什么,很简单,要看路走对了还是歪了,前面 ...



如果不录制,直接手写,我真的不知道怎么入手……
如果先录制,在自己加些步骤或对象,好象还好一点,用那个指标手指一下就可以添加对象了,用那个侦探头象的对象SPY,就可以查对象属性,这样来添加一些步骤,对我来说还不是很难。
直接写……
作者: huaxiaowu    时间: 2008-4-21 08:56
原帖由 hsjzfling 于 2008-4-18 13:28 发表
多做些实际问题,比如之前有家公司面试时,就让我40分钟内完成一个脚本,大致要求是
在百度上依次输入指定的关键字(写在DataTable第一列)->搜索->在查找到的结果中找到与预期相匹配的链接(当前页找不到就翻下一页)( ...



这个有意思,你当时可以录制吗?还是直接拿白纸写?
可以有电脑用QTP、开百度吗?

我周末去了圣淘沙玩,没能上论坛,也没学什么,呵呵……
作者: huaxiaowu    时间: 2008-4-21 09:46
[quote]原帖由 huaxiaowu 于 2008-4-21 08:56 发表

有几个问题:
1、如果用中文输入法,ACTIVE SCREEN里录下来的就是乱码,如果用英文输入法,就不是乱码了。怎样才能用中文输入法也不是乱码呢?
2、怎样让第二列的预期值与百度搜索出来的值相比较,是不是要先取百度上搜索出来的那些WEBELEMENT,自己手动添加到对象库里?然后和他们的TEXT值进行比较?这个有点难,我不知道到底要怎么操作。录制的时候,找到后录制下来的对象类型是LINK,不是WEBELEMENT,但SPY出来是WEBELEMENT。
3、录制的时候,点击找到的网页,是录制不下来的,这样就没办法取那个URL了,所以,这个是不是也要手动添加?
作者: hsjzfling    时间: 2008-4-21 10:09
原帖由 huaxiaowu 于 2008-4-21 08:56 发表



这个有意思,你当时可以录制吗?还是直接拿白纸写?
可以有电脑用QTP、开百度吗?

我周末去了圣淘沙玩,没能上论坛,也没学什么,呵呵……


当然可以,给你一台连接网络的笔记本,软件都装好了,现场做脚本~不过我当时50分钟才完成~~
作者: huaxiaowu    时间: 2008-4-22 13:41
现在开始看对象模型参考了,虽然是英文的,看起来很痛苦,但还是必须得看啊
作者: terrylight    时间: 2008-4-22 16:13
hsjzfling 兄弟说说怎么把摆度上面的连接取下来与预期值比较呢? 这个很困扰啊。
作者: yayali    时间: 2008-4-22 16:46
原帖由 terrylight 于 2008-4-22 16:13 发表
hsjzfling 兄弟说说怎么把摆度上面的连接取下来与预期值比较呢? 这个很困扰啊。




偶也非常期待早日看到答案!
作者: hsjzfling    时间: 2008-4-22 17:36
标题: 回复 27# 的帖子
取Link的innertext属性,然后用Instr,或者RegExp.Test方法比较Link是否包含了预期值
作者: huaxiaowu    时间: 2008-4-23 11:04
hsjzfling,能不能麻烦你帮我看一下下面这个脚本,按照你说的我写了一下。
但是取不到INNERTEXT的值,我想大概是因为LINK属性里没有INDEX属性的关系

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable("searchitem", dtGlobalSheet)
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
Dim x,y,z
        x=datatable("expectitem",GlobalSheet)
Do
        For i=0 to 9
                y=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("class:=Link","index:=i").GetTOProperty("innertext")
                z=InStr(1,y,x,1)
                If z>0 Then
                        Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("class:=Link","index:=i").Output.CheckPoint("url")               
                        Exit for
                        Exit do
                End If
        Next
        Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("下一页").Click
loop

我在写Link("class:=Link","index:=i")时,没有出错显示,是不是表明QTP是能找到这个对象的?
但是我MSGBOX(y)的值始终为空,是不是找不到LINK对象所以取不了INNERTEXT的属性呢?
SPY了LINK的属性里,没有INDEX,但是不这样我不知道该怎么一个一个地去取LINK的INNERTEXT进行比较了

麻烦帮忙看一下
作者: huaxiaowu    时间: 2008-4-23 13:59
帮助是全英文的,看起来太痛苦了........
作者: hsjzfling    时间: 2008-4-23 14:20
一定要习惯英文文档啊,否则提高起来很困难的,测试技术方面,国内比起国外确实还有很大差距

你要弄明白GetTOProperty与GetROProperty的差别先~
作者: huaxiaowu    时间: 2008-4-23 14:34
我知道这两个的差别……
用取TEST属性还可以运行程序,只是取到的Y值为空而已,用取RUNTIME属性的话,程序都无法运行,找不到匹配的对象。

我想,是不能用INDEX来描述对象吧,但是如果是这样的话,这个程序要如何来实现取页面上的每一个LINK的INNERTEXT属性进行比较呢?
作者: hsjzfling    时间: 2008-4-23 15:08
提示下错误吧~将"class:=Link"改为"micclass:=Link"或者干脆去掉这个属性,可以考虑html tag等属性,用来筛选掉比如:上阿里巴巴找XXX等广告链接
GetToProperty改为GetROProperty

[ 本帖最后由 hsjzfling 于 2008-4-23 15:12 编辑 ]
作者: huaxiaowu    时间: 2008-4-23 15:34
明白了,谢谢谢谢,感激不尽!!
不过HTML TAG为A的还有新闻这些,所以改成HTML TAG的话Y值取出来全是新闻
然后我就找了跟新闻不一样的属性X:=17,结果又只能取第一个LINK的值了

我再看看还有没有其他属性,真是太感谢了~~~

[ 本帖最后由 huaxiaowu 于 2008-4-23 15:38 编辑 ]
作者: huaxiaowu    时间: 2008-4-23 15:46
我设了好几种……
都只能取每页第一个LINK的INNERTEXT值……
作者: huaxiaowu    时间: 2008-4-23 16:02
是不是INDEX没有用?
对象属性里没有INDEX……
作者: hsjzfling    时间: 2008-4-23 17:17
提示:循环控制语句的问题,再仔细斟酌一下逻辑
作者: huaxiaowu    时间: 2008-4-23 17:46
do 和loop之间的内容反复执行,直到if语句为真跳出循环为止
for和next之间的内容起始 i为0,if语句为假 不执行,然后i加1,GetROProperty取到下一个的innertext值,我在这里有MSGBOX出Y和i的值,i递增,Y始终为第一个LINK的值,我实在是看不出哪里出了错……

也就是说,第二次输出I是1,但Y还是第一个LINK的值,两个MSGBOX连在一起的

[ 本帖最后由 huaxiaowu 于 2008-4-23 17:55 编辑 ]
作者: huaxiaowu    时间: 2008-4-23 18:02
事实上,我运行过很多遍,用过X,HEIGHT两种不同属性(这两个的话,百度上一页10个LINK是一样的,并且和新闻、广告那些LINK不同)
有时Y始终是第一个LINK的值,有时Y始终是第三个LINK的值

我今天公司没活做,倒腾这个倒腾了一整天了……
作者: hsjzfling    时间: 2008-4-23 20:04
呵呵,大致思路你是知道了,剩下的就是要细心来做,一个个小知识点击破,相信你做完之后会很有收获的~
作者: huaxiaowu    时间: 2008-4-24 08:44
其实现在就很有收获了,看书看来的东西终归不实在,只有踏踏实实地做了,才觉得有底。
看和做绝对是两回事,每个步骤都有要注意的小细节。
问题是,我现在卡壳了,我真的找不出是哪里出了问题,好,就算我知道哪个地方有问题,我也不知道正确的是什么样的,该怎么改……
作者: hsjzfling    时间: 2008-4-24 10:01
其它的先不说吧,看看你下面这个逻辑
Do
        For i=0 to 9
                If z>0 Then
                        Exit for
                        Exit do
                End If
        Next
loop
你觉得Exit do会被执行么。。。典型的死循环了。。。
作者: huaxiaowu    时间: 2008-4-24 10:59
啊,我总算知道了,EXIT FOR 之后不能EXIT DO
EXIT FOR之后就重新开始FOR了,永远不会EXIT DO
可是这个不是每次都取第一个LINK值的原因……

真的,太谢谢你了,我再看看
我以前从来也没编过程,所以菜了点……
作者: huaxiaowu    时间: 2008-4-24 11:15
我在前面加了个Z=0
然后把DO改成了WHILE Z=0

当然了,还是老样子……
作者: hsjzfling    时间: 2008-4-24 11:22
呵呵,不着急,慢慢找原因,将可能的因素一个个排除掉,要本着怀疑一切的态度~
作者: butterfly.hei    时间: 2008-4-24 13:08
我现在就学了winnrunner,很想学QTP,各位有没有QTP的安装包啊
作者: huaxiaowu    时间: 2008-4-24 16:45
y=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("x:=17","index:=i").GetTOProperty("innertext")应该改成:
y=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("x:=17","index:="&i).GetTOProperty("innertext")
至于原因,我不是很清楚,好象I是个变量,不能直接写,到底是什么原因呢?难道加了&就将它暂时常量化了?
我改好之后,百度贴吧的那个预定LINK里的值还是取不到,IF语句还是执行不到。
改成百度,就能执行IF语句了

另外Output也还有问题
疯了,怎么这么难搞定……
作者: huaxiaowu    时间: 2008-4-25 09:15
前辈人呢?
OUTPUT到底怎么办……
有没有定义一个变量,然后把一个变量输到DATATABLE里的办法?????
作者: yayali    时间: 2008-4-25 09:33
DataTable.GlobalSheet.AddParameter  "datatablename", 变量名

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

遇到问题先查帮助然后google,都搞不定然后再问人~
作者: huaxiaowu    时间: 2008-4-25 10:14
万分感谢!!!!!

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

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

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



恩,俺照您说的也试了,果然好用。又学了一点。
帮助和GOOGLE都是英文,看着麻烦,这个不急,还是问人来得方便,呵呵,不好意思啊,麻烦了你这么多。
如果是赶着要的程序,就是看英文再头大,也得硬着头皮看了……
作者: yayali    时间: 2008-4-25 11:08
原帖由 huaxiaowu 于 2008-4-25 10:14 发表
万分感谢!!!!!

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

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

太谢谢了!!!



VBS编程时会有提示,比如输入:DataTable.,自动会有后跟格式和提示出现,可以帮助学习。呵呵
作者: huaxiaowu    时间: 2008-4-25 11:21
这个太简单了,我看不懂的……
作者: lsf4662872    时间: 2008-4-25 17:35
标题: 回复 51# 的帖子
楼上的大哥能否说说Link("x:=17","index:="&i).中"index:="&i是什么意思啊,&在这里起什么作用?连接字符串?还是。。。。。
谢谢!
作者: huaxiaowu    时间: 2008-4-28 09:00
还有没有别的题目可以给我做做的?
现在公司又没什么事做了……
作者: wyy83    时间: 2008-4-28 09:27
原帖由 huaxiaowu 于 2008-4-28 09:00 发表
还有没有别的题目可以给我做做的?
现在公司又没什么事做了……


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

你最后怎么标识每个链接了?
作者: huaxiaowu    时间: 2008-4-28 09:34
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
作者: huaxiaowu    时间: 2008-4-28 09:37
那个MSGBOX(Y)是测试Y的取值用的,做完以后删了........
作者: wyy83    时间: 2008-4-28 09:41
恩 先谢谢  我始终唯一标识不了每个链接  再仔细看下
作者: wyy83    时间: 2008-4-28 10:50
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 编辑 ]
作者: hsjzfling    时间: 2008-4-28 11:40
原帖由 huaxiaowu 于 2008-4-28 09:00 发表
还有没有别的题目可以给我做做的?
现在公司又没什么事做了……


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

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


这个不是应该在结果当中看的么???
在RESULTS里面的RUN-TIME DATATABLE里面
作者: huaxiaowu    时间: 2008-4-29 13:33
原帖由 hsjzfling 于 2008-4-28 11:40 发表


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

lz可以考虑另开一帖~~


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

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

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

前辈给的这个题目,涉及到下拉菜单,我还没什么概念,呵呵,又可以捣腾好长时间啦。
等我有点头绪了,就去另开一帖:)
作者: huaxiaowu    时间: 2008-4-29 14:28
汗...没有下拉框.....
咋回事.......

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

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

我去另开一帖先~~

[ 本帖最后由 huaxiaowu 于 2008-4-29 14:42 编辑 ]
作者: hsjzfling    时间: 2008-4-29 14:47
原帖由 huaxiaowu 于 2008-4-29 14:28 发表
汗...没有下拉框.....
咋回事.......

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

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


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

[attach]41660[/attach]
作者: huaxiaowu    时间: 2008-4-29 15:00
绝对没错,是CN!!这个我还是知道的
又试了一下,还是不行

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

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




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