qtp录制时间控件不允许用户手动输入的解决办法
[前面的话]
一边学习qtp,一边用自己的项目试着写代码,而遇到一个问题就会让自己卡壳很久,这次也是这样的,在写好了登录代码以后,自己就试着写第一个预订机票的代码,但是到达输入出发城市和到达城市时,qtp就已经不能自动识别了,这个问题还好解决,但是到达输入出发时间的时候,又和输入城市的内容不太一样,这样就让我又困扰了很久,今天终于解决了着两个问题,写写笔记。
[遇到问题]
1, qtp录制下拉菜单的时候,有一种下拉菜单是这样的:可以手动输入的WebEdit,这样的WebEdit,如果在录制的时候,识别不了应该怎么解决?比如我遇到的输入出发城市。读者如果还不理解可以去看看去哪网的机票预订的出发城市选择,就是那样的下拉菜单,是可以手动输入的。
2, 第二种就是标题所示的,不能手动输入的下拉菜单,也就是qtp录制时间控件不允许用户手动输入的解决办法。
[解决办法]
1, 对于第一个问题,其实比较简单,一般的读者在操作的时候,都习惯于选择下拉菜单中的某个选项,但是如果读者在录制的时候选择,一般qtp较难识别到,所以读者可以在录制的时候,不要直接选择下拉菜单,而选择手动输入,这样qtp就可以识别到读者的操作了。
代码一般为:Browser("XX").Page("XX").Frame("XX").WebEdit("WebEdit").Set "西安"
当然这个代码不是唯一的,有的系统是有红色部分,有的是没有的。读者自己试试。
2, 对于第二个问题,就是这个下拉菜单不能够输入任何东西,只能选择下面提供的选项,对于这个问题,解决办法:
l 将不能识别的时间控件添加到对象库中,操作步骤是:点击resources——选择object repositories ——点击object——点击add object to local。点击完add object to local这个以后, qtp会让你选择你要添加那个对象到对象库中,你就直接点击一下输入时间的那个框,也就是不能手动输入的那个框。
下图是显示resources的位置:
l 然后你在添加代码如下:Browser("XX").Page("XX").Frame("41").WebEdit("startDateText").Object.value="2013-10-11"
也有可能是这样的:
Browser("XX").Page("XX"). WebEdit("startDate").Object.value="2013-10-11"
为什么会有这两种的哪?读者可能会问,到底是那种,这主要看你在添加到对象库的时候,你的对象是什么样的。
比如我的是这样的:
下图1,对象名是:startDateText,所以我的代码中是WebEdit("startDateText")而不是WebEdit("startDate")。
PS:如果读者有兴趣测试一下去哪网的话就会发现代码就是WebEdit("startDate")这种情况。
下图2,显示的是,我的时间输入的WebEdit是在Frame("41")下面的,所以前面有一个Frame("41")。读者一定要看清楚自己不能输入的下拉菜单代码的设计结构,不一定要去看代码,在添加到对象库的时候就一定要看清楚。
l 如果你添加了,如果像验证一下,是否添加成功,可以在active screen中,点击录制不了的控件,也就是你要输入日期的下拉框,右键,点击view/add object就会弹出object selection窗口,如果里面的对象是你刚刚添加进对象库的,那么就说明添加成功了,如果不是那么就在添加一次。
[学习经验]
对于这次学习的经过,自己还是感觉挺失望了,毕竟花费了我较多的时间,但是从另一个角度我又学习很多知识。总之,以后对于这些操作,都要多动手,多动脑。
[感悟]
如果一个人尽可能做好能做的事情,那这个世界就一定会因为这件事情而变得更美好一点。
人只要奋斗,就会犯错。
TT