51Testing软件测试论坛

标题: 参数化后无法再次登录程序 [打印本页]

作者: Sayid    时间: 2008-12-10 17:59
标题: 参数化后无法再次登录程序
请教各位,我在QTP的模拟网站上对起飞地点进行参数化后运行发现,脚本第一次执行成功,第二次在登录窗口失败了,不知道怎么回事。
现象是在脚本在执行第二次登录时,输入完账号后直接登录了,过程中并没有输入密码。导致登录失败,想了半天也不知道哪里出错了。
望高人指点一下,谢谢!
环境是 WinXP SP2 + QTPv8.2 + IE6.0

脚本如下:

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "aaa"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "493f591c1ded2feec7b24112424513d84e8e8206bc31"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 20,10
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("fromDay").Select "29"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "San Francisco"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toDay").Select "31"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 83,6
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 78,16
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check CheckPoint("New York")
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "aaa"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "bbb"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "8888888888888888"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebCheckBox("ticketLess").Set "ON"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 52,9
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("home").Click
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Sync

[ 本帖最后由 Sayid 于 2008-12-10 22:12 编辑 ]
作者: 风过无息    时间: 2008-12-10 21:28
userName必须4位的
另外假如第2次失败的话,可以加个等待时间看看
作者: Sayid    时间: 2008-12-10 22:11
原帖由 风过无息 于 2008-12-10 21:28 发表
userName必须4位的
另外假如第2次失败的话,可以加个等待时间看看


晚上换了台机器再次试验还是同样的问题。
另,userName没有规定一定要4位的吧?换个角度,我用了一个5位数的userName同样存在这个问题。
剩下的就是加个等待时间试试看了,有结果了再继续报告
作者: Sayid    时间: 2008-12-10 22:27
还是不行。
我分别给输入账号和输入密码这两个事件都加上了“wait 3”,但是仍然出现登录失败的现象。
也就是说,在第二次登录时,QTP输入账号后不等执行输入密码就刷新了页面。导致程序跑到执行输入密码时,账号为空的状态。所以最终显示登录失败。
我把脚本放上来,各位高人看看该如何解决这问题,非常感谢!
[attach]47496[/attach]


以下是添加了wait的脚本,但结果仍然是登录失败。
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "lbb"
wait 3
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "493fc8c3ac472f51ba7ae85ecbb87e80c3952fa54f86"
wait 3
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 14,3
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("departem", dtGlobalSheet)
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromDay").Select "29"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "San Francisco"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toDay").Select "31"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 52,13
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 47,9
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "lbb"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "sa"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "8888888888888888"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebCheckBox("ticketLess").Set "ON"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 73,12
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Check CheckPoint("New York")
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("home").Click
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Sync

[ 本帖最后由 Sayid 于 2008-12-10 22:31 编辑 ]
作者: 鹭岛    时间: 2008-12-11 09:11
属性可能变了吧
建议你结束后使用关闭IE,然后重新打开IE再输入订票网址,然后。。。
应该就没问题了
作者: Sayid    时间: 2008-12-11 09:35
原帖由 鹭岛 于 2008-12-11 09:11 发表
属性可能变了吧
建议你结束后使用关闭IE,然后重新打开IE再输入订票网址,然后。。。
应该就没问题了


非常感谢,这个问题的确在脚本末加一句关闭窗口就可以解决了。
但是不明白为什么脚本在进行迭代时使用原窗体会出错...

正确脚本如下:

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "aaa"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "493f591c1ded2feec7b24112424513d84e8e8206bc31"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 20,10
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("fromDay").Select "29"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "San Francisco"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toDay").Select "31"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 83,6
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 78,16
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check CheckPoint("New York")
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "aaa"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "bbb"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "8888888888888888"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebCheckBox("ticketLess").Set "ON"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 52,9
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("home").Click
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Sync
SystemUtil.CloseProcessByName "iexplore.exe"

作者: 鹭岛    时间: 2008-12-11 09:57
密码输入框的属性值改变了,输入同样是输入密码,但可能属性值不是PASSWORD了,所以导致你第二次运行后找不到密码输入框,你可以前后使用SPY检查下密码输入框的属性值有没有什么不同的地方(简单的你看看一个显示password另外一个是否也是这样的名称或者换了。。。)
作者: Sayid    时间: 2008-12-12 10:03
侦测了一番,没发现属性有变化




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