51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6820|回复: 24
打印 上一主题 下一主题

[原创] 急(面试题)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-12 19:19:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1. 在hotel.qunar.com中,城市:广州;入住时间:5-20 离店时间5-25; 用QTP将该城市搜索到的酒店及各个房型的报价记录下来。
2. 在www.qunar.com 中, 写一个qtp 脚本来验证搜索机票单程列表页各个功能

怎么记录所有酒店及各个房型的报价

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

使用道具 举报

该用户从未签到

25#
发表于 2010-11-23 13:16:28 | 只看该作者
呵呵,还是有问题,有个网友评价竟然也出现酒店名称了,看来用split分析字符串确实有问题
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2010-11-23 13:14:43 | 只看该作者
这个问题我喜欢。有实战,有挑战。
不过我是用rft的,JAVA脚本,写了个例子。我同意3#的意见,对于DIV,直接识别是有问题的,我采用的方法是首先找到这些DIV对象的父对象,然后遍历父对象的子对象,找到需要的信息。我想出题人的意图也就在这里吧。我把代码贴出来,虽然不是QTP的,但是我想原理是相同的

  1.         RootTestObject root = this.getRootTestObject();
  2.                 TestObject[] links = root.find(this.atDescendant(".id","jxContentPanel"));//获取列表的父对象
  3.                 TestObject[] childTo = links[0].getChildren();
  4.                 ArrayList<String> arr = new ArrayList<String>();
  5.                 for(int i = 0; i < childTo.length; i++){//遍历父对象的所有子对象,找出classname为hotelList的对象,并将其文本属性放到队列中
  6.                         String className = childTo[i].getProperty(".className").toString();
  7.                         if(className.equals("hotelList")){
  8.                                 arr.add(childTo[i].getProperty(".text").toString());
  9.                         }

  10.                 }
  11.                 /*
  12.                  * 以下代码分别取出队列中的酒店信息,根据空格进行分析,得出面试题所要求的信息。
  13.                  * 该方法假设所有的各个字段都不包含空格,
  14.                  * 其实更为完善的方式,将每个hotelList对象放到队列中,然后通过分析该对象的子对象的方式得到各个字段信息,例如酒店类型的TAG属性为EM
  15.                  * 因为只是为了证明我的思路,所以我用字符串简单处理了。。
  16.                  */
  17.                 for(int i = 0; i < arr.size();i++){
  18.                         String[] temp = arr.get(i).split(" ");
  19.                         /*
  20.                          * 分析字符串,酒店名称是第二个元素,价格是最后一个元素,并且要过滤到“查看详情 ”
  21.                          * 注意哦,其实这两个变量应该放到类里的,因为是例子,为了照顾可读性,我就放到循环里了。
  22.                          */
  23.                         String name = temp[1];
  24.                         String price = temp[temp.length - 1].replace("起查看详情", "");
  25.                         System.out.println("酒店的名称是[" + name + "],酒店的价格是:" + price);
  26.                 }
复制代码
最后获取的结果是这样的

酒店的名称是[速8酒店(广州火车站店)],酒店的价格是:¥228
酒店的名称是[广州东方宾馆],酒店的价格是:¥745
酒店的名称是[广州利洋宾馆],酒店的价格是:¥120
酒店的名称是[7天连锁酒店(广州赛马场店)],酒店的价格是:¥197
酒店的名称是[7天连锁酒店(广州建设大马路店)],酒店的价格是:¥227
酒店的名称是[广州文星连锁酒店(龙口东店)],酒店的价格是:¥188
酒店的名称是[广州越秀宾馆],酒店的价格是:¥597
酒店的名称是[广东胜利宾馆],酒店的价格是:¥451
酒店的名称是[位于广州荔湾区繁华的上下九步行街——广州第一条商业步行街。网友评价说“小吃都很方便哦,洗手间空间很大”。],酒店的价格是:¥652
酒店的名称是[7天连锁酒店(广州江湾店)],酒店的价格是:¥227
酒店的名称是[广州合兴大酒店],酒店的价格是:¥250
酒店的名称是[汉庭快捷酒店],酒店的价格是:¥241
酒店的名称是[广州同人宾馆],酒店的价格是:¥364
酒店的名称是[广州博斯坦宾馆],酒店的价格是:¥515
酒店的名称是[7天连锁酒店(广州仓边路店)],酒店的价格是:¥227
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2010-11-23 00:08:13 | 只看该作者
http://bbs.51testing.com/viewthread.php?tid=72995
这个 帖子足以解决你的问题了
呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2010-11-22 23:39:39 | 只看该作者
回复 1# peimzh

有意思,了解下
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2010-11-22 22:44:26 | 只看该作者
不知道你现在这个问题有没有解决呢?
我有方法可以解决
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2008-5-23 08:47:53 | 只看该作者
有没有高人呀,每次发生命令就会产生一个server.jsp的文件,在这个文件里面有酒店的价格
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2008-5-22 17:02:42 | 只看该作者

回复 18# 的帖子

这是得到网页的源代码
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-4-27 10:20
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]测试连长

    18#
    发表于 2008-5-19 16:30:17 | 只看该作者
    我按照楼上的脚本去做
    xmlobj.open "Get",mylink,false
    xmlobj.send()
    htmlcode= xmlobj.responsetext
    这块跑不过去,请问一下,这主要是干什么的呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2008-5-19 15:35:31 | 只看该作者
    还是没有办法
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2008-5-18 23:21:23 | 只看该作者
    个人感觉这是楼主在实际工作中遇到的问题,而不是面试中的问题,原因有两个:
    1,面试的人一般不会给你个具体网址,最多让你去测试MI 的订票网站;
    2,面试的人对于同类型的题目只会问一个,不会问两个。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-5-18 22:28:18 | 只看该作者
    学习下。。。。。。。。。。。。这面试题出的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-5-17 04:39:28 | 只看该作者
    不能自动录制吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2008-5-16 18:26:03 | 只看该作者
    这个如果是面试题目那也太夸张了吧,呵呵

    晚上回去按LZ的要求写个脚本先,呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-5-16 18:07:01 | 只看该作者
    回楼上,过奖了,  平时不断积累就可以了。

    回楼主,我那个代码片段没有写完,中文注释那部分功能需要自己写一下,大致上就是整个片段的重复,可以把一些重复的步骤写成个函数。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-5-16 17:31:45 | 只看该作者
    原帖由 jackymail 于 2008-5-13 11:17 发表
    这个网站了我看了,所有的数据都被用div 层给套起来了,要是table就好办多了,不知道是否有人知道怎样处理div

    我给你的第一个问题简单写了一点,你如果明白可以自己研究一下,如果不明白在下也爱莫能助了。

    'S ...


    真是太强了,我只想问下你们在什么地方学的这些
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-5-16 15:36:02 | 只看该作者
    这面试题貌似大了点
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2008-5-15 19:07:28 | 只看该作者
    我现在根据你的代码可以得到酒店名称,但是无法得到价格呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-5-13 15:05:41 | 只看该作者
    我参照着jackymail做了一段脚本,只能取到酒店的值,价格好像是算出来的,所以价格取不出来,还请高手指教.
    SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","C:\Documents and Settings\Administrator","open"
    Browser("Browser").Page("Page").Sync
    Browser("Browser").Navigate "http://hotel.qunar.com"
    Browser("Browser").Page("酒店预定,宾馆预订,青年旅社预订,酒店评论").WebButton("酒店搜索").Click
    wait(5)
    mylink = Browser("广州酒店, 广州宾馆, guangzhou").Page("广州酒店, 广州宾馆, guangzhou").GetROProperty("url")
    Set xmlobj=CreateObject("Microsoft.XMLHTTP")
    xmlobj.open "Get",mylink,false
    xmlobj.send()
    htmlcode= xmlobj.responsetext

    Dim regEx, Match, Matches
    Set RegEx=New RegExp
    RegEx.pattern="<a href=.dt-.*"
    RegEx.Global=True
    Set matches=RegEx.execute(htmlcode)
    For Each Match in Matches
                    patrn="\<.+?\>"
                    RetStr = Match.Value
                    RetStr =RegExp_Replace(patrn,RetStr ,"")
                    RetStr =RegExp_Replace(patrn,RetStr ,"")
                    print RetStr
    Next
      Function   RegExp_Replace(patrn,str,replStr)   
              Dim   regEx   '   建立变量。   
              Set   regEx   =   New   RegExp   '   建立正则表达式。   
              regEx.Pattern   =   patrn   '   设置模式。   
              regEx.IgnoreCase   =   true   '   设置是否区分大小写。   
              RegExp_Replace   =   regEx.Replace(str,replStr)   '   作替换。   
      End   Function
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-5-13 13:30:32 | 只看该作者
    谢谢大家的解答呀,非常感谢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-26 01:28 , Processed in 0.088913 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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