51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2557|回复: 10
打印 上一主题 下一主题

[求助] book a flight 中的正则表达式(日期检测问题),希望大家能帮帮我!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-12 18:19:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转别人的帖子,可是没人回答清楚,所以重发!
---------------------------------
出现了新的问题:
完整代码如下:
'####################################################################################################################################
'    描述性编程,事先把所有的IE窗口全部关闭    #
'#############################################
Dim WinIe,Ie,i,m
Set WinIe=description.Create()
WinIe("regexpwndtitle").value=" Microsoft Internet Explorer"   '所有页面的regexpwndtitle属性值都是" Microsoft Internet Explorer",也可以用其他属性
Set Ie=desktop.ChildObjects(WinIe)
m=Ie.count
For i=1 to m
        Ie(i-1).close                 ' 0为最后打开的一个,可关闭打开的几个,,循环改成for i=1 to m
Next
'####################################################################################################################################

systemutil.Run "iexplore","http://newtours.mercuryinteractive.com "
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Sync
'Browser("Welcome: Mercury Tours").Close
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "jie.wu"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "463fe0d035b4df752e83110ce83e3cd8c3722b639b31"   '97210125
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 29,10
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebRadioGroup("tripType").Select "oneway"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("departure", dtLocalSheet)
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromMonth").Select "February"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromDay").Select "30"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "Frankfurt"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "London"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toMonth").Select "July"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toDay").Select "31"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebRadioGroup("servClass").Select "Business"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("airline").Select "Unified Airlines"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 69,9

'Regular Expressions
'Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("2/30/2007")

'Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("[0-1][0-9]/[0-3][0-9]/200[0-9]")
wait 5

Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("[0-1][0-9]/[0-3][0-9]/200[0-9]_2")
wait 2

Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Output CheckPoint("271")


Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebRadioGroup("outFlight").Select "Blue Skies Airlines$361$271$7:10"
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebRadioGroup("inFlight").Select "Blue Skies Airlines$631$273$14:30"
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 45,11
'Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check CheckPoint("Book a Flight: Mercury")

'If Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check (CheckPoint("Book a Flight: Mercury")) then
'        reporter.ReportEvent 0,"检查页面","页面正常"
'else
'   reporter.ReportEvent 1,"检查页面","页面不正常"
'end if


'Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check CheckPoint("Book a Flight: Mercury_3")

Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "aaa"

' 添加一个bitmap CheckPoint
'If Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury_2").Image("banner2").Check (CheckPoint("banner2_2")) then
'        reporter.ReportEvent 0,"bitmap Checkpoint","successful"
'else
'        reporter.ReportEvent 1,"bitmap Checkpoint","fail"
'end if


' 添加一个Table CheckPoint
If Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebTable("Frankfurt to London").Check (CheckPoint("Frankfurt to London")) then
        reporter.ReportEvent 0,"Table checking","Table checking 正确!"
else
        reporter.ReportEvent 1,"Table checking","Table checking 不正确!"
end if

'添加一个Object CheckPoint
If Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Check (CheckPoint("passFirst0") ) then
         reporter.ReportEvent 0,"标准检查点","检查点数值正确!"
else
        reporter.ReportEvent 1,"标准检查点","检查点数值不正确!"
end if


Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "aa"

'添加一个Output
reporter.ReportEvent 2,"检查Output输出值","检查Output输出值"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Output CheckPoint("passLast0")
'使用GetRoproperty方法获取属性值
Dim value
value= Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").GetROProperty ("value")
reporter.ReportEvent 2,"属性输出值GetROProperty","输出值为:" & value

Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "123345"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebList("pass.0.meal").Select "Bland"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebList("cc_exp_dt_mn").Select "01"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebList("cc_exp_dt_mn").Select "02"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 72,14

'检查点 Insert Text Checkpoint
If Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Check (CheckPoint("Frankfurt")) then
         reporter.ReportEvent 0,"text Checkpoint","检查结果正确"
        else
         reporter.ReportEvent 1,"text Checkpoint","检查结果不正确"
end if

Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("Logout").Click


Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Sync

Browser("Welcome: Mercury Tours").Close






Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("departure", dtLocalSheet)
参数化,参数一共3行,可是,后面两行都会check失败,称没有抓到相关文本

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-10-12 18:22:26 | 只看该作者
这是2个人的回帖,不知道到底如何是帮助文档错了还是怎么回事:
1:::
如果按照Tutorial所说的那样:

在 Active Screen 中向上滚动,然后突出显示出发航班 New York to San Francisco (12/29/2004)。右键单击突出显示的字符串,然后选择“插入文本检查点”。将打开“文本检查点属性”对话框。


肯定是会出错的。
因为我用了参数化fromport,每一次航班的起点都是不一样的
New York to San Francisco
中New York 这个位置的值都是一直在变动的
所以只有第一次是成功的。2,3次由于相应的字符串变动了,中间的日期当然找不到了。


所以改变策略:
采用standard checkpoint,检查“innertext” 这个值

而不是像Tutorial那样“插入文本检查点”。

其实就是那么简单。
尽信书不如无书......


我把脚本发上来,可以比照
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebElement("2/30/2007").Check CheckPoint("2/30/2007_2")
和他下面的注释的那句
'Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("[0-1][0-9]/[0-3][0-9]/200[0-9]_2")
2:::::::
位置变换不会造成text checkpoint的失败的,失败是因为 你设置the text before and after it 变化了,以致于找不到。QTP text checkpoint,不是靠位置查找的。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-10-12 18:24:41 | 只看该作者
为什么action 1可以action 2与action 3不能成功?希望有人能帮忙解答
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-10-15 09:10:17 | 只看该作者
还没人回答,自己先顶下
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-10-15 11:05:44 | 只看该作者
checkpoint 这东东代码中是根本看不到内容的,不知道你checkpoint写的啥怎么帮你。。。

那么长的代码最好用红色标记一下出错的部分,找的累。。。估计能从头到尾看完你所有内容的没几个。。。

"肯定会出错的。因为我用了参数化fromport,每一次航班的起点都是不一样的",什么叫肯定会出错的。。。方法不对当然出错了。。。貌似检查点的预期值也是能参数化的,建议lz继续多看看教程和帮助吧~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-10-15 13:22:57 | 只看该作者
---------------------------------------------------------------------------------------------------
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "pxwcypx"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "4712c8240c076302d18ef9644384d1b58607d4b21ecf"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 33,4
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("departure", dtGlobalSheet)
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "London"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 61,10
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("[0-1][0-9]/[0-3][0-9]/200[0-9]")
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Output CheckPoint("270")
'Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebElement("10/14/2007").Check CheckPoint("10/14/2007")
'Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("[0-1][0-9]/[0-3][0-9]/200[0-9]_2")
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 66,14
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebTable("New York to London").Check CheckPoint("New York to London")
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check CheckPoint("Book a Flight: Mercury")
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "wang"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Check CheckPoint("passFirst0_2")
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "chengyong"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "123123123123"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 79,6
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Check CheckPoint("New York_3")
'Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Check CheckPoint("New York_2")
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("Logout").Click
Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Sync
Browser("Welcome: Mercury Tours").Close
[localimg=400,300]1[/localimg]
不好意思重新描述下,
在关键字视图中,单击 (+) 展开“Welcome:Mercury:Tours”,然后单击“Select a Flight:Mercury”页。该页将显示在 Active Screen 中。
在 Active Screen 中向上滚动,然后突出显示出发航班 New York to San Francisco (10/14/2007)。右键单击突出显示的字符串,然后选择“插入文本检查点”。将打开“文本检查点属性”对话框。

[localimg=400,300]2[/localimg]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-10-15 13:29:00 | 只看该作者
[localimg=400,300]1[/localimg]
[localimg=400,300]2[/localimg]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-10-15 13:31:15 | 只看该作者
[localimg=400,300]1[/localimg][localimg=400,300]2[/localimg]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-10-15 13:34:45 | 只看该作者
图传不上来啊。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2007-10-15 13:40:42 | 只看该作者
[localimg=400,300]1[/localimg]

[localimg=400,300]2[/localimg]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-10-15 13:56:49 | 只看该作者
哈哈,少看了一句话啊,该正则表达式只针对我做的RECORDING单循环,NOT DEPARTURE的多循环,所以后2个找不到
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 21:47 , Processed in 0.078394 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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