51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6600|回复: 41
打印 上一主题 下一主题

[原创] 请教正则表达试问题(问题已解决)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-16 08:19: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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-16 08:51:50 | 只看该作者
  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页面.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-8-16 09:02:17 | 只看该作者
终于有人答贴了,我先试下。非常感谢版主!!!

[ 本帖最后由 lantianwei 于 2007-8-16 10:51 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-8-16 09:10:33 | 只看该作者
版主,不可以啊,直能找到0个纪录。好像还是把".*蓝天伟.*"当成字符串来处理的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-8-16 09:13:27 | 只看该作者
你把脚本拿上看看,我本机上显示是9个纪录.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-8-16 09:27:22 | 只看该作者
试试"*.蓝天伟.*"
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-8-16 09:33:43 | 只看该作者
我的代码如下:
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
请版主看下哪里错了
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-8-16 09:42:14 | 只看该作者

回复 #6 loho1968 的帖子

也不可以,不过还是要感谢一下。sdlkfj5
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-8-16 11:31:37 | 只看该作者
oDesc("innertext").Value=".*蓝天伟.*"
后面加一句,默认好象是不认正则的
oDesc("innertext").RegularExpression = True     

应该是True,没研究过
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2007-8-16 12:58:02 | 只看该作者

回复 #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好像并没有当作正则表达试来处理。真的很奇怪!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-8-16 17:21:08 | 只看该作者
请看看这段脚本的反馈信息。

  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
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2007-8-16 18:13:44 | 只看该作者

回复 #11 surlary 的帖子

在我和同事的机子上都运行过了,但结果还是0,你的答案是什么啊?
非常感谢您的帮助!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-8-16 23:49:51 | 只看该作者
我试的也是0   sdlkfj7
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2007-8-17 10:18:00 | 只看该作者
运行一下我的工程,看看什么结果。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2007-8-17 13:00:31 | 只看该作者

回复 #14 surlary 的帖子

非常感谢你,我运行后的结果是0True,好像还不对,请问你那有正确结果吗?还是我的QTP有问题,我的是8.2的
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2007-8-17 13:19:50 | 只看该作者
9.2的是可以的 9True
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-8-17 13:38:45 | 只看该作者
你再试试;
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
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2007-8-17 14:03:57 | 只看该作者
如果还不行,把oDesc("innertext").Value=".*蓝天伟.*"分别替换成下面的两种看看结果是什么。

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

  1. oDesc("innertext").Value=".+"
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2007-8-17 14:14:40 | 只看该作者
唉 还是不行 要么8.2还没有支持在DESCRIPTION里的正则表达试,不过还是要谢谢大家的虚心指点!
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2007-8-17 14:33:33 | 只看该作者
oDesc("innertext").Value=".+"这样结果仍旧是0吗?

把oDesc("innertext").Value=".*蓝天伟.*"这行去掉结果是什么?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 12:16 , Processed in 0.100011 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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