51Testing软件测试论坛

标题: 请教正则表达试问题(问题已解决) [打印本页]

作者: lantianwei    时间: 2007-8-16 08:19
标题: 请教正则表达试问题(问题已解决)
小弟最近开始学习QTP,现在遇到一个小问题:就是我输入一个关键字进行搜索,现在我想得到在第一页我搜索到的链接数,代码如下:
   Dim SearchStr,Lists,NumberOfLists,oDesc
   SearchStr="蓝天伟"
   Browser("Browser").Page("百度一下,你就知道").WebEdit("wd").Set SearchStr
   Browser("Browser").Page("百度一下,你就知道").WebButton("百度一下").Click
   wait(2)
   Set oDesc = Description.Create()
   oDesc("Class Name").Value = "Link"
   oDesc("innertext").Value=".*蓝天伟.*"  ‘匹配要搜索的链接
   Set Lists =Browser("Browser").Page("百度搜索").ChildObjects(oDesc)
   NumberOfLists = Lists.Count()
   msgbox NumberOfLists
   但不知道为什么在上面我用红色标注的地方不能用正则表达式(不知道是不能用还是我用不来),请高人指点迷津。非常感谢!!!

[ 本帖最后由 lantianwei 于 2007-8-20 17:54 编辑 ]
作者: 风过无息    时间: 2007-8-16 08:51
  1. Dim SearchStr,Lists,NumberOfLists,oDesc
  2. SearchStr="蓝天伟"
  3. Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set SearchStr
  4. Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
  5.    wait(2)
  6.    Set oDesc = Description.Create()
  7.    oDesc("html tag").Value = "a"
  8.    oDesc("innertext").Value=".*蓝天伟.*"'匹配要搜索的链接
  9.    Set Lists =Browser("百度一下,你就知道").Page("百度搜索_蓝天伟").ChildObjects(oDesc)
  10.    NumberOfLists = Lists.Count()
  11.    msgbox NumberOfLists
复制代码


注意一下测试页面,每次需要转到search页面.
作者: lantianwei    时间: 2007-8-16 09:02
终于有人答贴了,我先试下。非常感谢版主!!!

[ 本帖最后由 lantianwei 于 2007-8-16 10:51 编辑 ]
作者: lantianwei    时间: 2007-8-16 09:10
版主,不可以啊,直能找到0个纪录。好像还是把".*蓝天伟.*"当成字符串来处理的
作者: 风过无息    时间: 2007-8-16 09:13
你把脚本拿上看看,我本机上显示是9个纪录.
作者: loho1968    时间: 2007-8-16 09:27
试试"*.蓝天伟.*"
作者: lantianwei    时间: 2007-8-16 09:33
我的代码如下:
Dim SearchStr,Lists,NumberOfLists,oDesc
SearchStr="蓝天伟"
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set SearchStr
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
   wait(2)
   Set oDesc = Description.Create()
   oDesc("html tag").Value = "a"
   oDesc("innertext").Value=".*蓝天伟.*"'匹配要搜索的链接
   Set Lists =Browser("百度一下,你就知道").Page("百度搜索_蓝天伟").ChildObjects(oDesc)
   NumberOfLists = Lists.Count()
   msgbox NumberOfLists

显示为0
请版主看下哪里错了
作者: lantianwei    时间: 2007-8-16 09:42
标题: 回复 #6 loho1968 的帖子
也不可以,不过还是要感谢一下。sdlkfj5
作者: skyzhu    时间: 2007-8-16 11:31
oDesc("innertext").Value=".*蓝天伟.*"
后面加一句,默认好象是不认正则的
oDesc("innertext").RegularExpression = True     

应该是True,没研究过
作者: lantianwei    时间: 2007-8-16 12:58
标题: 回复 #9 skyzhu 的帖子
非常感谢你的提醒,在QTP帮助里这样写到:
Note: By default, the value of all Property objects added to a Properties collection are treated as regular expressions. Use the RegularExpression property to change this setting for a specific Property object in the collection.
但不知道为什么,感觉QTP好像并没有当作正则表达试来处理。真的很奇怪!
作者: surlary    时间: 2007-8-16 17:21
请看看这段脚本的反馈信息。

  1. Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "蓝天伟"
  2. Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
  3. Browser("百度一下,你就知道").Page("百度一下,你就知道").Sync
  4. Set oDesc = Description.Create()
  5.    oDesc("html tag").Value = "a"
  6.    oDesc("innertext").Value=".*蓝天伟.*"'匹配要搜索的链接

  7. Set Lists = Browser("百度一下,你就知道").Page("百度一下,你就知道").ChildObjects(oDesc)
  8. NumberOfLists = Lists.Count()
  9. msgbox NumberOfLists
复制代码

作者: lantianwei    时间: 2007-8-16 18:13
标题: 回复 #11 surlary 的帖子
在我和同事的机子上都运行过了,但结果还是0,你的答案是什么啊?
非常感谢您的帮助!
作者: wasd2615    时间: 2007-8-16 23:49
我试的也是0   sdlkfj7
作者: surlary    时间: 2007-8-17 10:18
运行一下我的工程,看看什么结果。
作者: lantianwei    时间: 2007-8-17 13:00
标题: 回复 #14 surlary 的帖子
非常感谢你,我运行后的结果是0True,好像还不对,请问你那有正确结果吗?还是我的QTP有问题,我的是8.2的
作者: skyzhu    时间: 2007-8-17 13:19
9.2的是可以的 9True
作者: 梦醒十分    时间: 2007-8-17 13:38
你再试试;
Browser("creationtime:=00:00:00").Page("url:=.*").WebEdit("index:=0").Set "蓝天伟"
Browser("creationtime:=00:00:00").Page("url:=.*").WebButton("index:=0").Click
wait(2)
Browser("creationtime:=00:00:00").Page("url:=.*").Sync
Set oDesc = Description.Create()
   oDesc("html tag").Value = "a"
   oDesc("innertext").Value=".*蓝天伟.*"

Set Lists = Browser("creationtime:=00:00:00").Page("url:=.*").ChildObjects(oDesc)
NumberOfLists = Lists.Count()
msgbox NumberOfLists
作者: surlary    时间: 2007-8-17 14:03
如果还不行,把oDesc("innertext").Value=".*蓝天伟.*"分别替换成下面的两种看看结果是什么。

  1. oDesc("innertext").Value="[\u0000-\uffff]*蓝天伟[\u0000-\uffff]*"
复制代码

  1. oDesc("innertext").Value=".+"
复制代码

作者: lantianwei    时间: 2007-8-17 14:14
唉 还是不行 要么8.2还没有支持在DESCRIPTION里的正则表达试,不过还是要谢谢大家的虚心指点!
作者: surlary    时间: 2007-8-17 14:33
oDesc("innertext").Value=".+"这样结果仍旧是0吗?

把oDesc("innertext").Value=".*蓝天伟.*"这行去掉结果是什么?
作者: lantianwei    时间: 2007-8-17 15:19
标题: 回复 #20 surlary 的帖子
都是0啊,估计QTP就根本没有把他当作正则表达试来操作。
作者: surlary    时间: 2007-8-17 15:22
如果把把oDesc("innertext").Value=".*蓝天伟.*"去掉也显示0的话,就应该跟正则没有关系。
作者: lantianwei    时间: 2007-8-17 15:50
标题: 回复 #22 surlary 的帖子
你说的是什么意思啊?难道是其他的问题吗?
oDesc("innertext").Value=".+"这句可能QTP也是当作字符串来处理的,所以显示0,难道不是这样吗?很疑惑!sdlkfj4
作者: surlary    时间: 2007-8-17 16:19
把oDesc("innertext").Value=".*蓝天伟.*"这个条件去掉,看看能不能返回页面中所有的链接,如果也显示0就跟oDesc("innertext").Value=".*蓝天伟.*"是不是识别为正则没有关系了,我这样说你明白了吗?
作者: lantianwei    时间: 2007-8-17 17:34
呵呵 看懂了 那肯定是可以看到链接的
sdlkfj5
作者: gzj_06    时间: 2007-8-17 17:57
看来应该是8.2版的未能实现这个功能,我的是9.0的,刚才在机器上运行了下,显示是9
作者: lantianwei    时间: 2007-8-17 18:03
标题: 回复 #26 gzj_06 的帖子
高大哥也来啦,呵呵。。。
作者: gzj_06    时间: 2007-8-17 18:10
呵呵,离开了一个多星期,感觉貌似已经又产生了差距,现在到了该迎头赶上的时候了
我刚才又仔细看了下,原来我用的是风过无息的代码,是通过的,用你的报错,General Run Error,然后把那句换成:
oDesc("nodeName").Value = "A"也不行,报同样的错,看来只能用oDesc("html tag").Value = "A"
作者: lantianwei    时间: 2007-8-17 18:24
标题: 回复 #28 gzj_06 的帖子
我是用什么都是0 但好像没报错
还真不知道哪里的问题
作者: gzj_06    时间: 2007-8-17 18:36
标题: 回复 #29 lantianwei 的帖子
那就更进一步证明了可能是QTP8.2未实现此功能
作者: gzj_06    时间: 2007-8-17 18:56
标题: 怪事年年有
原帖由 lantianwei 于 2007-8-17 18:24 发表
我是用什么都是0 但好像没报错
还真不知道哪里的问题
咦,奇怪了,你无论用哪个都没报错,而我试过好多遍,都是报那个General run error,不知是不是QTP9.0的就这样呢
哪位是QTP9.0的把oDesc("html tag").Value = "A"这句换成oDesc("nodeName").Value = "A"或者oDesc("Class Name").Value = "Link"试试,看是不是也报与我同样的错
作者: bobile    时间: 2007-8-20 16:57
大家都很强呀
作者: bobile    时间: 2007-8-20 16:58
我要好好学习了
作者: bobile    时间: 2007-8-20 16:58
sdlkfj2
作者: yt1985cncn    时间: 2007-8-20 17:31
标题: 怪事~~
我9.0用风过无息是可以通过的,不过显示的是8
回高大哥,我和你的情况是一样的,2句都是 General run error~~
作者: yt1985cncn    时间: 2007-8-20 17:52
帮助里看到的:
The default properties for a Link object (hypertext link) are text and HTML tag. The text property is the text inside the link. The HTML tag property is always A, which indicates a link.
作者: lantianwei    时间: 2007-8-20 17:53
我已经知道问题出在哪里了:是因为QTP8.2不支持在DESCRIPTION里的正则表达试 我今天试了 是小侄女说的8 呵呵 sdlkfj5
现在可以结贴啦!
作者: gzj_06    时间: 2007-8-20 18:05
标题: 回复 #36 yt1985cncn 的帖子
原来如此啊,呵呵
作者: lantianwei    时间: 2007-8-20 18:10
对了,还得感谢在此过程中给于帮助的朋友们,非常感谢你们的帮助!
作者: lyscu    时间: 2007-8-24 12:45
太深奥了,学习中sdlkfj1
作者: vpic99    时间: 2007-8-29 07:52
学习一下
作者: haiqin    时间: 2007-8-29 09:48
我的也是0,如果你们解决了的话,一定要告诉我哦




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