In the Active Screen, scroll up and highlight the date for the outbound flight, New York to San Francisco (12/29/2004). Right-click the highlighted string and select Insert Text Checkpoint. The Text Checkpoint Properties dialog box opens.
[attach]25087[/attach]
In the Checked Text area, click the Constant Value Options button . The Constant Value Options dialog box opens.
In the Value box, replace the current date with [0-1][0-9]/[0-3][0-9]/200[0-9]. This instructs QuickTest to check that each character in the selected text matches the number-range format defined by the regular expression.
Select the Regular expression check box. A message box prompts you to insert the backslash character before each special character.
运行结果:
[localimg=400,300]2[/localimg]
不知道什么原因?作者: rivermen 时间: 2007-5-14 15:28
结果
Text Checkpoint "[0-1][0-9]/[0-3][0-9]/200[0-9]_2": Failed
Date and Time: 2007-5-14 - 15:09:07
Details
Text Checkpoint: captured "7/31/2007" between to Frankfurt and SELECT , expected "[0-1][0-9]/[0-3][0-9]/200[0-9]"
Regular Expression : ON
Match case: OFF
Exact match: OFF
Ignore spaces: ON
[attach]25088[/attach]
[ 本帖最后由 rivermen 于 2007-5-14 15:30 编辑 ]作者: fate 时间: 2007-5-14 15:59
应该是参数化导致的错误,你把TOPORT 参数化了吧作者: zoeHuang 时间: 2007-5-14 16:27
本人觉得你这个问题还是你的正则表达式写的不正确。如果是[0-1][0-9]/[0-3][0-9]/200[0-9], 那么 07/31/2007是符合的,但是7/31/2007就不符合了。可以看看[0-1]{0,1}[0-9]/[0-3]{0,1}[0-9]/200[0-9]。 我对这个也不熟悉,共同学习作者: rivermen 时间: 2007-5-14 17:46
问题解决了,诚如楼上所言。
正则表达式应该好好学。
另外:{0,1} 中间应该是英文的逗号作者: 19thangel 时间: 2007-5-14 17:55
请问{0,1}是什么意思?作者: rivermen 时间: 2007-5-14 18:05
出现了新的问题:
完整代码如下:
'####################################################################################################################################
' 描述性编程,事先把所有的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
fromport选用的是 dataTable,分别是:
Frankfurt
New York
Paris
'Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Check CheckPoint("2/30/2007")
注释的作者: 19thangel 时间: 2007-5-16 17:26
大概LZ测试的是 RETURN
London to Frankfurt 5/15/2007
SELECT
这里的日期
Frankfurt参数化后条件变了,第一次是Frankfurt所以成功了,后两次则找不到条件了。作者: rivermen 时间: 2007-5-16 17:26
我想我已经找到了错误的地方了:
如果按照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")
may it be helpful......
[attach]25437[/attach]作者: zoeHuang 时间: 2007-5-16 17:51 标题: 回复 #13 rivermen 的帖子 位置变换不会造成text checkpoint的失败的,失败是因为 你设置the text before and after it 变化了,以致于找不到。QTP text checkpoint,不是靠位置查找的。