UI自动化测试
Qunar机票搜索场景
访问Qunar机票首页http://flight.qunar.com,选择“单程”,输入出发、到达城市,选择today+7日后的日期,点“搜索”,跳转到机票单程搜索列表页。
在列表页停留1分钟,至到页面上出现“搜索结束”。
如果出现航班列表,对于出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表中会出现“第一程”、 “第二程”;对于没有出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表底部中会出现“报价范围”
如果不出现航班列表,则页面会出现“该航线当前无可售航班”
请使用maven创建java工程,引入Selenium框架,编写WebUI代码,实现上述人工操作和验证。要求能随机验证100个城市对的3个月内的任意搜索条件。
看到乙醇博客里提到过,特意找了别人的文章看了下,不过是java的,没怎么看懂。
下边是第一步:选择“单程”,输入出发、到达城市,选择出发+7日后的日期(原文是today+7日后的日期),点“搜索”,跳转到机票单程搜索列表页,剩下部分以后补齐。
两个难点,一个取得出发并加7天,一个是返回日期。第一个用python的datetime模块,第二个有两种方法:1、在返回输入框前边有个“返回”提示文字,点击后,就可以输入,这个有点简单。2、另外一种办法是用js,下边是后一种办法:
#coding=utf-8 from selenium import webdriver import time,datetime fromcity = u'广州' tocity = u'上海' driver = webdriver.Firefox() driver.get('http://flight.qunar.com/') driver.find_element_by_name('fromCity').clear() driver.find_element_by_name('fromCity').send_keys(fromcity) driver.find_element_by_name('toCity').clear() driver.find_element_by_name('toCity').send_keys(tocity) el = driver.find_element_by_id('fromDate').get_attribute('value') todate = str(datetime.datetime.strptime(el,'%Y-%m-%d').date()+datetime.timedelta(days=7)) driver.execute_script('$("#dfsForm .js_arrivalDateDiv_disable").css("display","none")') driver.execute_script('$("#dfsForm .js_arrivalDateDiv").removeAttr("style")') driver.find_element_by_id('toDate').clear() driver.find_element_by_id('toDate').send_keys(todate) driver.find_element_by_class_name('btn_search').click() time.sleep(5) driver.quit()