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()

  

  

posted on 2014-06-07 16:24  小白闯天下  阅读(537)  评论(0编辑  收藏  举报