51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1997|回复: 2
打印 上一主题 下一主题

[求助] ! !QTP中的问题——passFirst2找不到

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-14 10:28:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!
我最近在才开始用QTP,现在遇到了一个问题:我用QTP录了Welcome: Mercury Tours,进去后,我实现一个人买多于一张相同的票,要输入First和Last名字时,有所不同,我用的是:FOR.....Next,实现的输入First和Last名字的循环,但是发现在QTP中>2张的时,就会出现:The "passFirst2" WebEdit object was not found in the Object Repository.
而<2时就没有事的。 
请问这如何解决?
谢谢帮忙了!
我的代码如如下:
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "zd"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "zs"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "471096e3af741e52791aebb052ffb6895016"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 22,2
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("passCount").Select DataTable("p_Item", dtGlobalSheet)
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 48,13
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 53,14
Dim j
j =DataTable("p_Item", dtGlobalSheet)
For i=1 To j
For  k=0 To j
F=InputBox("请输入你的Firstname.")
L=InputBox("请输入你的Lasttname.")
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst"&k).Set F
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast"&k).Set L
Next
Next

Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "fgsdg"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 66,10
Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Sync
Browser("Welcome: Mercury Tours").Close
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-10-14 16:08:18 | 只看该作者
呵呵,你的对象库中没有添加passFirst2这个对象,当然找不到了~
搞对象是门要耐心的细致活,不能想当然的来~QTP识别对象是有原则的,所以手动写代码及添加修改删除对象都要遵循基本的原则~

简单来说,我理解的QTP识别对象有两个步骤:
1、 根据代码中对象的名称及对象层次结构去对象库中搜索是否存在此对象
   若此类对象中没有找到该名称的对象,则QTP会报The "xxx" <MicClass> object was not found in the Object Repository.
      若找到名称,但是父对象层次结构不对,则报对象库中找不到该对象的父对象

2、 根据对象库中对象的属性值去被测程序中查找符合条件的对象
      若程序中为找到属性值与对象库中完全一致的对象(与代码中该对象的名称无关,只与对象的class及属性相关),则报不能识别对象
   若程序中找到多个属性值与对象库中完全一致的对象,则报有多个对象匹配

找到了符合条件的唯一的对象后,则按代码中的方法对此对象进行相应的操作~

PS:只是凭印象写的,肯定不完整也不细致,有时间有机会再归纳下~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-10-15 10:15:50 | 只看该作者
使用描述性编程
下面是转别人的


Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Output CheckPoint("3_2")           将人数取出到datatable “a”
abc=datatable.value("a",dtGlobalsheet)    获得这个人数
abc=abc-1
For i = 0 to (abc)
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("name:=passFirst"&i).Set "cs1"
Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("name:=passLast"&i).Set "cs2"
Next
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 16:37 , Processed in 0.076357 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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