UI自动化测试
Qunar机票搜索场景
访问Qunar机票首页http://flight.qunar.com,选择“单程”,输入出发、到达城市,选择today+7日后的日期,点“搜索”,跳转到机票单程搜索列表页。
在列表页停留1分钟,至到页面上出现“搜索结束”。
如果出现航班列表,对于出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表中会出现“第一程”、 “第二程”;对于没有出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表底部中会出现“报价范围”
如果不出现航班列表,则页面会出现“该航线当前无可售航班”
请使用maven创建java工程,引入Selenium框架,编写WebUI代码,实现上述人工操作和验证。要求能随机验证100个城市对的3个月内的任意搜索条件。
未完工代码
#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep from selenium.common.exceptions import InvalidSelectorException from selenium.common.exceptions import NoSuchElementException dictlist = {} dr = webdriver.Firefox() def search(): #open website dr.get('http://flight.qunar.com') #click single travel dr.find_element_by_id('searchTypeSng').click() #clear dr.find_element_by_xpath("//input[@name='fromCity']").clear() #enter from city dr.find_element_by_xpath("//input[@name='fromCity']").send_keys("北京".decode("utf-8")) #clear dr.find_element_by_xpath("//input[@name='toCity']").clear() #enter to city dr.find_element_by_xpath("//input[@name='toCity']").send_keys("深圳".decode("utf-8")) #clear dr.find_element_by_xpath("//input[@name='fromDate']").clear() #enter date dr.find_element_by_xpath("//input[@name='fromDate']").send_keys("2014-07-22") #click dr.find_element_by_xpath("//div[@id='js_flighttype_tab_domestic']//button[text()='搜 索']").click() #sleep sleep(6) #wait searching end while True: tex = dr.find_element_by_id('progTip') if(tex.text.find("搜索结束".decode("utf-8")) >= 0): break else: sleep(1) def elementsisexist(id): try: dr.find_element_by_id(id) return True except NoSuchElementException, e1: return False def finddicts(): cnt = 0 while True: try: links = dr.find_elements_by_class_name("avt_column") for link in links: print(link.get_attribute('id')) dictlist[cnt] = link.get_attribute('id') cnt += 1 break except InvalidSelectorException,e: if(elementsisexist('nextXI3')): dr.find_element_by_id('nextXI3').click() sleep(10) else: break if __name__=='__main__': search() finddicts() dr.quit()